import COM.CCB.EnDecryptAlgorithm.MCipherDecryptor;
import COM.CCB.EnDecryptAlgorithm.MCipherEncryptor;
import ccb.pay.api.util.CCBPayUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import utils.FastDFSToken;

import javax.activation.MimetypesFileTypeMap;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import javax.net.ssl.HostnameVerifier;
import javax.net.ssl.HttpsURLConnection;
import javax.net.ssl.SSLSession;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;

/**
 * @author xiexiaojin
 * @date 2024-07-29-15:40
 */
public class Main {
    /***
     *广州商学院参数
     */
    private static String qrcode = "CCBXYzaf5OYKzSb5Ijhgg2994%2BVx08tE1j5iByvkSh6jZo3umIGae82QB2eD26EZMjFwkMFnswKN%2BzIr9BlHGX6mNC%2F%2FkAhzLivERBtTWM2sYGa4akJYEeAKfGxzR4yCnHgsKQBQN4D449zO%2BvX1wWKEWKw%3D%3D";
    private static String shl_id="1061002"; //5320001
    private static String st_id="W202403019"; //W202403019
    private static String ECARDEVID="101076";
    private static String BRANCHID="530000000";
    private static String MERCHANTID="105000082116342"; //105000448160540,105005253999624
    private static String POSID="071984009"; //071984009
    private static String TrdPt_Pltfrm_OrCd="2405";
    private static String MERFLAG="1";
    private static String date = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());


    public static void main(String[] args) throws Exception{
//        String shenfema="YXY999pU7/P62+E10KWE0luQKmhflhGUSNm1V96FJzLFR+U+HBldUQmSTUfSZNmGw4PGZP"; //武大身份码
//        encodeUrlAnother();

        encodeUrlTwo();

//        String imgstr="%2F9j%2F4AAQSkZJRgABAQAAAQABAAD%2F4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdC%0AIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAA%0AAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlk%0AZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAA%0AAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAA%0AAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA%0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAA%0AAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA%2BEAAC2z3Bh%0AcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADT%0ALW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAw%0AADEANv%2FbAEMAAwICAwICAwMDAwQDAwQFCAUFBAQFCgcHBggMCgwMCwoLCw0OEhANDhEOCwsQFhAR%0AExQVFRUMDxcYFhQYEhQVFP%2FbAEMBAwQEBQQFCQUFCRQNCw0UFBQUFBQUFBQUFBQUFBQUFBQUFBQU%0AFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFP%2FAABEIBQAC0AMBIgACEQEDEQH%2FxAAdAAABBQEB%0AAQEAAAAAAAAAAAACAAEDBAUGBwgJ%2F8QAVRAAAgEDAwEFBgMHAwIEAQIXAQIRAAMhBBIxQQUTIlFh%0ABjJxgZGhB7HwCBQjQsHR4RVS8TNiFiRyghdDkiU0orLCGCY2Y3OTCSfSKDdERVNUdIPT%2F8QAGgEA%0AAwEBAQEAAAAAAAAAAAAAAAECAwQFBv%2FEADYRAAICAgEDAgUCBQQBBQEAAAABAhEhMQMEEkFRYQUT%0AIjJxFJEjM0KBoRVSseHwBiRTYsHx%2F9oADAMBAAIRAxEAPwD7hW3uUwAYwRB4jijRAgaOQRkTA4qR%0AWJ6Agnkj40ioh%2F5l9TUPi49dq%2FY8vJTa1OwEAqpkyM%2FrNef%2FAIwaCzqfY3XWbltO7uWXC7sHwujE%0AT8AD8hXoxQ92YhWwZPXFcT%2BJ%2BlOo9mNbbKqWu2XtgAYaTgD%2FAObUPjhHUV%2BxpB5PgrsbTa0Lqi5R%0ALrXCdxbBMAHJ6Ymu27Otm%2FpQ4bulEQSoJB5%2B81ynYy7tXrLZBa3uNzvWSDmJ2%2FIH6nzrstDbs3bB%0AXw2rRA8RwcqcD7cda93h4%2BOMUlFfseTySXc2XbGnKuWUcrO3zMk8fetVLW23ZYjdtLKQ04EMsEnp%0ADH5EVXt6a3aTvUXcQstvPiuZyFA9POtE2WW2hW4wCyWlZglsGDny%2BBrSUI1VGSlTKnYNtP8ASNLc%0AYIWDXhcFuNxK3XXMegUVYFg3Vt70%2FitBLKMyDLAZoOwrZ%2F063aVRttXrwO0SNpuE4%2FXWrJVlhlgs%0ArHIJBI6wQPl86%2BU5ZTjJruZ9hwyaih0u%2FwDlyGuMNzGCvBMZB9PWgu7Ta8IzcBRmYyUHSBjnOaIB%0AktlQFKdWJMjAkQf70Yc53bNxMA7dojyEk%2Blc0ubkvb%2Fc6llEZddtsllMCCoBEHE%2FPn60OxUcyJIg%0ACYkHPHXg%2FapXKKIO1lLFSBiT6%2BvP0pSVhYVmYbgzWxgQZ%2B36NQ%2BfkvMn%2B5WWiPu2KAllYNAJ3D0M%0AEdKJIS%2FtCBipKmDxIiigLZ2C6HuSrHBwTxA6jp86e3c3SRyAQ0kzPy561L6jl8Sf7hoC1a2XN5Cs%0AUU7MTtJjM9OD96kVTuMbSCdwhSuOTknPyp2Qi3uCrbYDPdgAfHaPzoAXYuvulWgmMn5ccUpc82vu%0Af7sStMdNPO5WRXUHc9tkBViVGYPI4qR%2FFv4CA4CRBJieOvAoHJt21k7iv%2B3nGYipjpWuAWy627pY%0AKFYZJ4jPX1rL5%2FKv6n%2B5TYDWjdtlbhaGBVWIEiB8vyojbZbi7j3xgkocqDEQMeQ6zzRC53wBAIV%2F%0AEBBgwAJH0H3p%2FHpyxDq%2B5vAx8O3GAD8j086r5%2FLvvf7sG%2FAa2iiKoUIEPhAJx1j86O0Li7gBbuZI%0AIIMx6foiow6r4WMLJJbd7v1ycx9aNCLliNwuAtAhADxyDORxx5il8%2Flf9T%2FceRrtgLuB2hijAbjG%0AD55ziRP5VNf7u%2Bx3lilxsiQCQDIP1ApWyGuwoCgYAJyaIXCAMhsRuYGYJxHyqXzci%2Fqf7kjupQSA%0ApDNksTDY%2B1Pt3G53kLJDBg22DjP2pIAzRIl%2F5ixweg%2FxSDwWnxGNsedL5%2FLruf7jsNLnjMSHJD7S%0ApiRxHTiitoqb1KeHwgEdAABH2plUn3iwJwCM%2BlEg3JMKqgTDAgiI5pfP5F%2FU%2FwBwTJ9zm%2BjkmRBB%0AB4Pljihtlmue8F7yAGKEkiIY%2FSafezAEbB1UNPHn1jiKdGYuGVtxHPeZOfImmublr7n%2B5LCDElh4%0AT%2F6MAzOajU25VkVVgnKCF4g4HX%2FNSgd2CFO1lcZHOMkeWcUDOSQwAA3QCBBXpnynNX8%2Fl%2F3v92P8%0ABB4ZUyu0Su4c5E%2FnTLuaFkLbBJwPTHWmWVtlQFU7sAAD6%2BtEl1grAbUIYj3Z4rRc%2FIl9z%2FcGxFSt%0A0PAKiDCkTPXP0pKiBiFAV2Ykrgt9uaNypLEqMdFkt85%2BdOCGwdoIIgtj9Zqfmzk8skj2bGYiN4bI%0AIOKNAMbVkfHyoFJLkkyckDiB5Ue44yCcTuOfjU6JHYg3BuhmOJBBA%2BQ606ctBVv5dxxxSGGgQRyD%0ATi4GQMMicyYA%2Bf0p9zJYSq3iLQAOCeASP7U5gDu2WVGNrH%2BlRqhBYgyYJEkRHHA9DTn3gBENJhuT%0AjmaXfJ4TKokYKbpdram42Z2Q2YP6%2BVIAMkPBXdG1hifnRM7B4HQkAj7xPP0pmfcqzwfPof11p%2FMm%0AvICuWVRQrRBzAEQeAPXAFG28M0SNywSIJmT%2FAEihZtyWwJMRMHofWjuOzEAQS7EAgRj64%2BVax5eR%0AZUn%2B4g3i3JUmAAAVEU9vdAIRVbnakZHBJM9OvWkW%2FiQvlmACAfnNMLhTaSAN0KUU846%2BXSrXLyN%2F%0Ac%2F3JPBf2j7qJ7X9iq6BbY0VzZGd0m3JxPTbg%2BVe2%2FsSpbP4c%2B0rK0Pa7Ve13cRtBS08T8YPzrxT9%0ApS%2Ft9tOxJVdw7ONsPtzG%2BYBmDEnMDnr09o%2FYlZm9ifam6rqiv2u5KEyTNm1JPrivf4%2Fq4oyllnhc%0A%2FwDMeT6Q067GRpEAzBODjH51e06TBPMnaPLAqjYEbBiAelaOnx";
//        String base64Str = imageToBase64Str("./imgs/1758281311356.jpg");
//        System.out.println(base64Str);
//        YXDL03();

//        String head_url="http://47.95.169.216:8989/pay/forward";
//        String params="ECARDEVID=100001&SCHID=10001";
//        params+="&ccbParam=7HylEdSyzZZWb17UqOx85A5whCc9BIn8tHCVVKIo%2FJtsmuv6gmi7l6naAegsUusZnCvgMSeNTD2ilizXoEsoO9wLaH%2Fowc4mUUC2MVnqfwwUYIKviMBFIHw3cLPXmLwPA7hITo%2FwTo%2B0LcmrqvugGeQ0cL2ed4nP2vyUC7aIZjNBpt01pqwUsXwmufsxnUj7lEwdWUYdxfGaM0wf6jxiO%2F9keWIUzs%2FSYA60kSTUTh7SvD%2B1uSfmGLVUhOrxRGsVgbXBae37ZqjbHVdsE%2B8Um0iEN5V0pvxxz5Tj7NGBFEOgHXUph1wdRSBqLTZpgV4SvqgQcNffiO01w%2BxdWbwA0vEnVqyfiiPVsMF%2B2OlLv1rxJ1asn4oj1bDBftjpS79a8SdWrJ%2BKI9WwwX7Y6Uu%2FWjo%2BkPVp4bg6SGC8d2f9%2BaJlIkBoKj4bIClRSiu%2B0x%2FVjzSnT3%2FjXv51yoSwMFjd0lSh1MFQLQ%2BWHgEmuBKh%2BGIuk1hs9F0JOjchRKe6SQbH5pSROV%2BfT1jlUMR4SB9PSuk7KMd%2BC0MDTTX0XeYwGZAO3tBLLm7s7sKS9TB6yrddfRkgSxxfqaGbB%2FSrHVq6vVfG5GZxHf8ZaMrCQztE0RxuwjykQJEV6M9fGLjxvcWMd7xuH3iPwcya8XmxlHt1Ek5fiJTF8fvIgJ3pLVnCju%2BXTCcBypAR7MvRMiuh0nsjLsRSbEg6YPJpdBs1Ns%2F%2Btr1MXOHTeZcG8JoJG8%2FSeMJwG5JMrfOcOCDkgo5W1PEbQuDJ62KD5Zq2pFL0EUsZVuB5TLy524jZEPUqPtWxtTugiZPN81PdvF%2FtTKIypzdmetgaJFJhgTVeesBDEN33IYxXDpcSwmYZS8LLnV%2Fkzssuk1hs9F0JOjchRKe6SQbH6xT1R%2FzGQtGjGhN%2BEhsST7KWmN3uyiZctTNJ0ZiNkg5J%2B2oeH1KqkVgjBTKksu7tLV4N5OzgcJ9pRVqOHtAY2iJmhKxECdIxm5F711l1gC9JLFU2mu2jU54%2FdvBMM2cDT3SnO56jZYTULeFJMwVbNZ7ysqqNPmp7a7XrM03ejjvuuW2qCLec0%2FMdqz8v%2Byk0Vc%2FbqWftC2icXqI9bQ8ZFaxqy8NpdbT0ZRQXykXfJvv1XB4kChx801v%2BYll34MhazCihJvCA8YwUAJMFomcJZnL9SVa7Jkf9UzFf5O0USCoeKLer1ihrpl2F%2FcAtFr1yuSTxT4LVW6lxsc42NLxzlcS2oppAZfyxW5%2B6RhHM%2F2vL9RuVD%2FeYJVkZjNM2b8dHYWnW8mjzAaJ9U4I4m6V%2FLEVSW3p0xb5gck%2Bylv0xk2JLZX24lWIAB%2FEklUSfQaOZazykmLZkXcF7k1qMhSN%2BMu10RS46YXpVvqOIAVb2klbu9cnddXyveB4f%2BXAPT%2FTgSPf%2BwpgufNlM5IJdp7h3RWZrCTQ5oDf7X5ys0VrgF2W4LFG6VVdFHWJqWOEitIdUNp3U0Ut%2BEu9mTO3h7LKcFqawdp6%2Fze4fzoKuI5ncvKcAiR2kVTrsXsJqkmqP0M0XKf4CP0EObTDe6Sl9BPwHxqz7Lf822oXVQTMynwr0O%2F8jsrtLWU%2BNQjh7ZH87WLLUsQp9IpDuKhFx6jLZ9rzamJ%2FK6ZXIcCljTOIrJA8in7aZxm8N8tsRpxnFuN%2BSig7lHe4ROGnHx%2BNDaMie8tTMgc0BGaQ8eJEf5N0zww5UUMMyFt1pGiNU0Sprt6hEeO4aJ27wkSmNy%2BZhOqeB2XZojbb2z1vIo04EZO%2F0SgaWCjQnJV473LHuKBd%2BIJNC0%2B2h%2F0eRfr%2BjEH6VaU%2FN1r6fRUg68RL0Pj9R5ceN5ctR2Xxz3MYlzAIrnpIL8E92Y3k78kKzPuIp2c8wb2UvOpwEnIj2jvpOXk0YwUejQhyzxrQgfJ4p46XaDKlRCB%2BoYzC8xmk0zi8DyPoAXrk%2Fgpg3PMELkcALnspY5vJQ%2FpenTkA55pJFZdKkl7rlf1AGCjdyBX7NpUhX8fUZWxpZPQbuiTGldz4YYLXsK8iEsPp8GNJHjAT%2BwhIIDtO6v2mfS8awJtgbRn33Tn87dC7CGjUbXyiqXD0lokxwjV9rSMEvYreauTbNk9rvNYlrlmkTnnufKf5z4pzlWMPfG8ZpfpdgEYin6PjIgBzxL3RGC%2FXrrEJOTH8qGpd1nqD0msgyW4WPt9PQ0UczbZxZwhxmR%2FiTbSsTjeIfo9bRXpkaRFilxGG3jWP%2BPqzLwS%2BMcgDOQPhlVVVFIeCbFF6DqATxMjh9pWaA41NHrWHJ8VlpMKwigvTL89Eoixxm1uZ%2BvOCyU8xU4Rjt1RvS45HJa%2B7rA7v62VKPPByRSSSrC5OT8YUDXgI5aouRHxOte%2FeCwVMFdkFH%2FIyO2gAuDkxmHtReOWDxTGlT8qRWhFFvO%2BJwgpwCh6ubXPQYVgOK7WtBOj4jxH26Z4zmRJgcN3ehlwWGioNJCRf99LaQzgr%2B8mRiVZ4WexlkRQWa20k%2BSIweoQ8yrNWR7hISp3KV0uUpD50RrgqpAHnlP3SJTOs2ZahXqCU5s72fw2QXkqIyAkeYxQC%2BZ3%2FcT0QwujjUEdiC%2FJzgdL13mIKmwskgO796jRbmXrujRaEmy4jMMp3ugF7wKVJpAzfRFVsj%2BhFweCNjcqoiqgFHPqYZ4qywgjDgdvQ%2Bdj8n4H8qKVqzSNp626Ed9HLUdwbxdcWggHflvWzW%2BFV9QaqwfoM6llQ3Hsmwwb5GAYIkGR3JUt0TvSTsgPHXpjbpfguuMZk9k1i7ed%2FJ51BaPOIcljWDNIEmB5WPqofmuugKgPeefwnZWsHhF0l1O90qHPHKUxQaLZTXIPAuDxx3EzxPSN44qnAWRmDUGtD4y8%2Fxb%2F8aZtqQ%2BmCTGnhODMRwCBm%2FUhcorzJO6h3upRyuzc%2Bc5QO6zYLKRMWnTkSt04lZHNk829HnYLKApUSkiB9pjmdlwvzr2kEgO%2BNZ2Y4xGWwmXBjjTS%2Fjr5V9870VFaBONeaTUMjsv%2BJmocdN3MPheZjmezsO12m%2B9BOxc16Tt8FhMaiAq1OUk28jA9whL%2BaHXgfKO0DkGuNL90llUayD0J0lhuOxK7z4dob%2B8IR%2FquvyhosaAxoQAU%2BPuOJigau7PCsN1%2F0%2BggAyJ9CvauwKcTDCuXp%2Fw5xJK32UfjjKziAKhXehaNVD%2B%2BZ06WlhhJeJfm9BLPcx8Ythi%2BPzb%2FBsCa1ngQXbfC18cH5YuaqR%2F54SbxNJeJCze7TFMuYTsgOxH%2FYBPoNsECYIU937p3iZph%2FTtteFKZA7fdN2Hb%2F%2BqeimWiTFYZ94kYaAlybdmgzt8BsJ3KlpmEA4yYcBGj01XJu2CkgaZjm13VpYG2mzpBJItSM4ULIpWdowWI58qwdRvZtza0CHCY0TivDFHiYbRo7f5Z2JsD%2BgZTO8bPRdHximLYhranQovRoXREv2dto01jH0reB3dBzWDmVWtD1JgnJd%2FkHqIBN8I9mGIDF%2BIN9R82KoA%2Bt4uuYrfnWbUQ1AsqQHQgN4vVWGwl84%2BdNvfcUqHOdScuiKYeEw9ksG%2Fg1ZOLz9aqoxDxQ2MeIQIaXk4ddaoqblES1XkAgcxUmEJQoJFa237oPvTZlnaQxmbgFCC5nJ7JyHT6ZhTUIeY%2FLoemjGLM2f03NN2yMrcpKF3ngIPOOEhdoz1jsb%2ByLQe9%2B5ZIcCq%2FHMQNTNyNtA9uLgkN0JQpldmGos%2FwAIWBaA22Ix0RMa2YFAigGhLXpjZkoMgTmOkWIlin1xpkyDkiGKAAXsReWbvJoX6jZrapYP0fjJpQPZnEbVZDSGRYq90aSLCt%2BkcE8sMHed61B0gvbI8RP7ludH6QClFxiE6rmoOblf7NoaxY%2Bl7d%2Fh2Zl0rppGkmogzeRuIp7Xpsz93X6uLdpBZUNz8ozCczaMf1GeSG6%2BiuurzmuHnsf%2FpaoARhQMpRH%2FCl9qpPk1fY2c5gGoimzJJrpiA1qcNaQvzmW0B1oh8K75KfQqlFmIkk5Jq5CIr99Pq0olq9Z55tRYxHK1bbQcHl341fL7oOSU5lrkAvfX%2FDsmII2G39b%2B7kIuctq4NK64b7KOWAb2Xh7gzCW%2FilLN2zEPnMbixKN9pxlV5fXtozezD7kLSmBYPJ%2FFBOkYOyx607iXULXc2KRijdzLFKsTNhuZq08aS3OJKZHGKqDs0Lq48aFpddIBgcq3HI18wqRihoTSN%2FwDeYrKv%2BQl9uXhSblJHRjaQTCSkuOQgY0VOg0kt9ncd60dQmRUh%2FODbyb%2Fr%2FeJQHiNJnXhtLf5NjNzycJdqDRbzFNGo6eKWYUzhXT5brwH5kcOJq%2FwRsE8ZX3lcHoROX77iIvOlK%2BjDocFQar4Nm%2FfzK%2BDBCeoO2Kxv1nyOu48MkJvJvLbh%2BEltONNZh2CF6%2BbN72CvwEmp5FJKrqpt%2FzKp3OWWYp0sjh1rdVHuVjMDOU2IEU4d6Oo8xzOn6mRfIWiuhmyZhg77%2FKEYOpLDL43SpPhK8oJhHrC4vyIuH4IApceoWzntgs0F5Hjuzf0ufoyf7qHeSyPYt0MbVzbdyqmmfLus7nzh6GhUvkNHGMJH10rOTblplR876vTmSuwjeXUu%2FfKzb9edursPalnP9s8YYu7LZlrsZcBW9YiDmAMLsblx%2FaeG4NZw%2F4kaGQSADdQXZocRX1bQZcJVqC0bHhCbZKKH7RcKf8MXAOnCaSVhRIeSiLa%2BofHr53gbx5uxeyKAiEc9VK5L8r7fojFXn3H3MZZqV%2BcaVqCCHgx7vlKOMPLweoqUxCRkWmO1lJCWb5XLF0pEIqAK0Lb1ArYCoLMToSGf5%2FsiMZSHbZlzADmBaP6X4BEw3yUmWLdF8re%2BhpKs82kVN2BV78Q6bnweeTK4JfiFpm1Qi08NAAq4gCHNJPdl0Ygqj97wsnQg03Vt7e2ndkFUi06QEIBr5SKd3xQNi6xP7q3617IjfURLefwEZI%2BIRSLNxJhD50S9Sfynd6PrLvdxtnIMvWyYm5X76naE6hWjyBzdUbQdWuB1cD%2B%2FsvLYGreinNKcZ3mGLIEoL3tM2aur243DMFwTxzdJZ%2Bp3LqfXTMbbgUTIkf4YjLZQX15WwzgAHQ6xcFsFUO5SLyIyYIVFgAeq0MZ377icIP3QgUjtqn0opGNuTALpr6WRqw5xj%2BhnNrNb7dDxbfmslqxWbo6Dc5mrzCd9KIsRKpRRFPq1ZeKQHUEJRPWyfEZ2rmzcQjr2fZoHEZxZV0pgYufobMDolPj10e18RtiAYrriTp9aW0cnvl684H9%2FuekK83F7N4kkLezzj5R60fLWYVqmwtuUUesRNi6DErbT9kDG2eSBvx9moiYE0j%2BFhYLuIXVnQKPMfCg8sZVkG1ResI6nXi4fjlgZy5iZMFdZxdLREO0kgilnIRHPZb47szg5V1M6xnKwXN6BiYcScRO7zgcH3Mw1QL%2FDp%2FcLMzPkZM5OiN695tUTpVEqJgja49yeXCVauNu0kUtjreJ79NbHczHWU%2BXCNYYygvrwWMTPnKuRHOVb4xHSH0spIt5eDJm010vWv%2BOc4pGrzbPZkB57nF7McjLXSvf2mfB7hyHpMcjL3wGW8NZqENOiA4GsIcIPi2TrBSHZzYqpMEbBaCz9J4ZZCl6XoRLVAbRU6PZLhAdk7PyjwH1lrjrz0NywRVDskl333smbAXnJNO%2BLVl3qjio3srZyEWNRvMKu8YYsahien3a3%2FU%2BJfAEofUJbEQZlgV7FhacQaiOgYS%2BIh6kjbHmCnTnRZ2fmyC4tMf1Z%2BzvvE9VlQmc4Dn6cPByDaOCZQXW4Qo6WlH6yGWoOO6hpZPrqpbxrkQsWGR2Scvz3wDSiIR%2F%2BAp3aGAn%2FryZ3y%2BrdoSMpFkKRnn%2FcHKduE167bAzVZ05Ifh906Lh18olDWVedJ57vaVvzOPN%2BIZx7adRgsEXbkWNM0Rf18SN%2B%2FUC2WLYXmFL0ZCPU19Uh8SVCq6%2FepuXJ8Ehpyrl3cqWKbpH%2Foz6Wo8KXLpc7zRLu0xivo3yyAjSugapYEifiriXHTgqaVEMNO%2FNPJXsKhMTp24PBXz4lex9nMkZ37vmayZ6F6NcKoF5saNMYhe%2FfBSaPDx9ub1MjQGxkXnVS5ilcq4ZsETxW3x5XdySYFmP%2Fa0lYyzkMTpvDcFOphPL%2BMOCmk6DCwAvGyisxocO230rxCtEdY1xPU7zEjHzk4AUzaY6I1lEpBUXe7p57tLZNFIxIsjYKkn9nIfg%2BCsQ8RHaGwfjIEtpCOMnV%2FWvevDL0NMyMmxzf2Hin02Uxed%2BprBJreg%2FZXgW8lQBn9Mo1OPIyhdD1cBOPbY0k0jm0AZmEJWTgMndhW2fzu8Iqtkp6fGlGIHiCZxDgriFYjMtLzI7hVv%2Bi5Ylsn6eLHJhJnnMGmpJgVwJdFAWu%2FBlg3lcMmAjyta4QtwtfiUKfaqJrtcQ5av4%2BasT%2Fx2rgfuUd6xdWC74j4DeppdtdTeJHZoackGtQnP35Ae9%2F77EPnGvWiY3Ng7Sj%2FPRI35N3xZJWkqzLBkjeP%2FQLm7GuJd3wLum4NQ%2BFLXytX8FnRtsh0fr%2Fx41RSAtUxqLsrdYuB6cJnsiaPdk6ohIxwYHpeyraqQ4dqyIPWa2qQRc9Err7M2eCwIDs17nXWMvKjytr%2B0eMQAbwUIZXvBAeNWzArNQTiVU0jBspGOxgxACtq%2BrHrAQLiTmuoMRlmhtcG7yWaefVVZBrDZqbtiXn%2BKBY27r8XtjVQlNMYG%2FRARI5iRWQ1rqBACYAZ9%2FBnstmlWIA8I%2FjHkLZC2wGlTEOcPs5NL48kqsVlf56WjdAvseOfPte3AqiLnSUDXMI0kd9TxSsk9YONeNvmsGLq5gGpwMYk99JhfPLIbmCfr2LnfnH9mxPJoTa70bQr%2BhMqiTQ6BpYA22qr4BLRypTqMNGPQ4Z8Kqq6EW7mNrhZyVPttmCUPobbF8xk69uzz%2FF6038NLDV6Yd6Z4kh1YONECcxY1ofMDDnHZfmbWLxKq3TKYfP6x1ZRR4g65zgyKBUi%2BhQfTqw68Llv4p3WQGZrtnE3cp%2FDTu3V9OsqVBpH2cZvkXEOiLmUmBBq%2F6%2FSTLJ%2BUvotsuSA1RtpMy%2BhZNV06Xt%2Blas7wHDkgYZdKdItW2cY9UWTPE%2BwX29iZHFH2co8v%2Fm9zzbIQopAAaYvWfP6DFGo4gXHsPKJ3Y5mjvRQNWYVkI9ZEZM2elrjUzcnRFRB267K6VMX9%2BiDgfsL1RWLrvOroAWhei2386BpAxiVxvF9NjBlxAUMQ4UFkkZgKw9I9GJFUQs7xWpIqV5SgJhGH7dBvU78XWD%2BJRunWtn12zSUmD97lCPuqWWM17alpatvg9kxb7d%2BxZffsSyzHY5FTMUJKMTYXgPjMIr0%2FlyZs3fIbba4nlgtvX6ga7N7MsH9D3FTxUESsNtgLxJi%2BOJHndRowckFXaYNoGlR5B7DPtLoBypkx0fZLBjtywhKxy4MRuKOEuu4S7nCwDiBFRqNMFPwA8XergOjhL%2FLhzBFjgJbmZy%2BmbFuLFQVNCl3zSx6lkPEXqi1ECssIFJo9csax1z1B1t%2BmiRp4wBL2Mcwz41v4ee5MIYn4FOfp5sD8gtHbcUWkECIwNvQ90cYBMB8E6ECRt5XOGbHGYvklCs72vCPur4zuJ8wr3flxB9Xt98fyOZKl5f1y9eZhIKp%2Ft2L4p4867MVfSeRa0i%2BfMicj2jd4qVahXkSg8vQX%2FNQadq2kd54w8o0kMPsg969vn9MIFJ57c13hFnfvzzfP5iMf7GTCvzWAxQHBmcQnfdwWyABr3VOQEZR0LqLo6HGdbcEdlNT5ydgRHCIgf01aOdfuakYP4ibaZ%2Bf%2BE41MbyiyWIbWV4J1b7TFpYWu4dTt9wYSJucAukHaaAv%2BGnwAemgtyuplvHgUeyVMFAPY7DNxAIEtYeADZmSWF0K9yicUQDdQZK01tUnUVQWFvFYnQk6nPB3Q8IFPdKECeBkHcytuU7gMx8cLn3KzG0Q%2FSwKtDIuPZRGjqKdi6NBr6I9BxXJ3OjaQ4taWXYKhE4SnLkdJFtyogAm3J5I5MZGsfUo7xGgPggQCabWO0rZWZpfrUwfB6xURNJo57JOAQekAsePsrrNSkou1CYcWPfWCIvXyeqkcTU%2BrjIZGSj4PtUj3nyucbQVvvs648YQTO7AeUq9GKkNLaPeZP0PVd%2BmwdY7HYjQp3qXYHvHywlhBm%2B04khWcJ2QRRojJiX27HwZtV0YzDZJWzt5%2BPCgCG8BDjMmfzvilz9OVFvBU98raV%2BOWxy7kl%2B9mmFVOSeSTya27Yciwz%2FagnWR0JMGMn1BcQFmjPSIUkBu58sMGB1lYANla%2BFTKJsPPnORLEFE273%2FA%2B7FpTtiIdwmscK7C880QoIsrdbktMhULuSUpLf0Q3OjLNMBIbSp%2FpLCIhS6cHtVtYN7agmkwXh7qsB85Q4GPfUBsHQRV3xIDilnA55K3sdVLE3Vqsy9apHaFMMYI6m%2BMuay4gd0WpKqe3mQiJ6vh6TFxUpOsHk4YDVJjRn6%2FDWji1VLHQv3oF3Kql%2FhosVTISKyc5GUOAu9cFV47TEhZ84c8Nm8aKChyXqDAIKHRsH2wI4wAyhNMgvRtMns8dM%2FUDyFZlakk%2BtlA0lUsrG0ucFDyV4evi7yVeUtWQEZn%2BiQQ5K0veqxeiXxQ7ALeCaBsb%2FBaQQfalh5G0pjKcGurd4ctt6RQuaQldZzAVnlqu2N1ALYwpOrfsM9LX0ZmQShdPtXeVjjQDY%2FxqhC9tma2RjENJJHLZe8ysrB7VPtbaNCz05nyux%2FdQFVFbXqbbW6EBwklBmkFEEEk71rSEtjCuwYHWXgegGG3gxseHl7SqAOCRVtHot5zqprCByfEJdcWW8BUCIbtwFGAzHkDI%2BUzWgX8yvbmdalzQkn58VMZDFsB5hPolQx7rMOtqEcrwYDPO%2FKfosO4T0wm%2BEGKMKNNHuDq1v%2BKwmcsJpwH90yxFYFkmvGfFIkTGVzVFCNEmIfX8XT45LwV13RAKGiOO3rU%2FPqzDKIuiG%2F7mvUuqsiv9jeprTMG%2FOsD84KSqroNrnC021NjAd5fnVS9R2JMCSL22rxEUnijQm%2BGNwyfa9KDWf4x5F7w1CtlHofL3G%2BwflU2b2JESnL3ntKI6M3ONRZjeHbBCI%2BF1QUu96mD%2FVHM0LBkITrOLMkfesx69ktkWcpdcuXKf7ORV8vpFUB%2BGyAHvogavqdKBaHIEsrHxQwT42YnJVGx6TuFlOt8Utv0%2FoHVaSSqzJAhXRvRHGgybtZrFKlL2gxjH9FD7HBTEfl2Vfmygvpgvtjr21%2BQ3vafiaKu1a2j36pbAj7otTfTPF6bkhWouDpyR766SvDz2jPs2960oQWb7VUERKJWciCXcXMF7hI8kSiksVH4s5TZE2t6iAQOp5gcNn7pCKOJW1AlwBPrReCW0y0KTaENtBX729rQxvGsgYDdj0jW%2F28lDQy5zm2cuXHucDMUMEi2jMM1apcQLb4LmLJesRwuVqj4b9qDLp2Qc28p6A5ljzJc1o7H5oGDBTzzn7myqTLiIFilHlSRb92rsFemREd2gAP41hjVd1TsNSZXVyWANlIEZNgFeqn5AT%2BnqsU%2BhT%2BbFcT3Seaituyf6oU9L2j1Q7gHgzp3XNf7w5MzED9iuBnCUjw4SZiQ7Pz8fI5cAQxOG%2BG20erO4j39eagUoSHGM2yty4rJd9UV6Y%2B%2Bp7sUzMOlGj2kPEe9vc1t4Sm6x8MHporNPAvKgAhyEiRjj%2FpfBd45gHgyWyAxN6BmDtqm29LFvsqJTJf7OCFbmPoW%2FFHFj9KnZKWWCjxeb8BjHtCt%2BleCRvhlV4pfGQZ%2Bbl4q10ZKLAHMdpQjM0J%2BL3QMMdnkeUcfiWs3gtI9NucDKZXBPXy9A2gqUQz4ZZ7zcCI8eq5DuQCmm%2FuBdDTkKI%2BVzmlk04S5nwESFpAPba0T%2FMD5zI2O4uZMnJUw%2FbOMZGVJkpbJABU4M1YCoZzcd1jJo9bJtk%2F%2FFdlLFuwO6qTNHZoSX4prTgOEjLMUe6mSYjHtE6C5ywUAPx8jUpUpKVtzygG3GwrjEBjUcySQzkraJBjf8reYJXTqm3sYGT3pwW2NqL%2F%2BjbsQGNRzJJDOStokGN%2Fyt5gmAjp2iC4cAkCEvYpsxdfjqVfAyhfV9ZQs7eESl2bZ0v%2BMDY%2BZk7ky6pWpBz33ueoR1qm8AyIRlufVqCuCvjobhhh0vRFrDRRiQhcFrNR8hMqLkkkAiCe1rw472wbQ5nuF4wyDg2mZEEWH3VUP93Te5yVtYfi%2FFX2qrUSkli7aboGcAz%2BsaLclTOxsFhybEJKbjP3LjPoTTOtbEymulk6DqX3rI%2B50RVfb54WOJ09iTdb8HhrtxIxxZ9UASUPhuqdVee8%2FzrOBA7jzHzttJvgqG1KOdNm0mvHrrSCaoJsB4T8i69V8mEfXJFMbhSSoHWhH3U1kRYts3szMYmZv1WdaDFpD0P1s2mqNDva9yjG2sqnmCoS3Y%2FNPzneIg2e6%2FXXsNBoj6CuPlLutWuSTFZGRi9u%2FEddXRR3oVABUenZxP%2F4a6kskv4GMjax%2FaMmOzuoO0YIIwve7iHF%2BeIDmcqFw4vj4eME7LFdneFjQm2M0q7hQUNqNsvCiBsHPX9heZ%2F%2B2LXDyj3gkINR9kKeoSTJzd5eud%2B7yFjV4j8ADywS7sIaHymI8DcZbvc6znIDL137WduZq1RtCDKoP%2Bu%2FdAKXmmXNZ1mmMRreeuNcyylFd2dLj09ihGCTvMdRvc1QN0ETz1AEFFmJsZ1bfdLW9qitHCFzM0q9PhpMzcV7wLYHuufLfVdcPXXVN%2FirKpH9suD84ONh4nmyXWQZ0B58RRv3CMzCHp7b1BkJlo18W3xvjOzUSdwf7Rq3sqeZEAmpye7cPrLvXbVWx%2B9hzzonvgBmcTsolxBM7BeI%2B1tnm44qUnG4g4j3DrQNd%2F6Ga5%2FYySmNOGJZi43IURohX%2BNIme7jwMJVLg3tbU83AtpiQBvD40NGkHdCU8aSgDeY%2BOnyoCfPNyexc8%2FbrfjLFbe3bEKBBPUWRIW001RBvH88t4MR8fDmzk7oQ1FlPGqXAqSfV8xiLH4%2FOp2c%2FgumfHTUy5r6KWFMRPk705%2BKH1C%2BAJ8%2BfO1Wm%2Bch0e6lSLk1DDVdhRgXf1q3TCgBIDfpEuPAqkjLt%2FiA%2Fd31Oztw3uIVIPfIohwMC6SNBvMqFYZOE%2Barth8ZNyo0%2Ff7HLU%2Brt8e2GwyuFyhXigs3ltLnQKStb4BUL4G4YlmLjchRGiFf40iZ7uPAzViRbZ7kAi4nPJfpGJkHWN8zBv%2FLM3EgRs6dE3k%2FqrhwoQPlQqJ98NQBV8IhVigkckRrexd7C8TklWGF07hiDOgMj4YshLcGSoMiWbUUz6FcZ9tyhsxRA0ofy08V89LRMwkMBOkyzGCytKQToMvdehhNL7bHG4jFBD1KInk5YNPujApMMmflyjdAVI93NIDK8sqgp55cJ6OYs1rV%2BPbF4o0SizV5eYKKt0f%2FHAqA9pGpCdy5%2FCIebwXMMzgWZdvQk4PQ%2B11ueQ%2BMDrzqI4qDqZbyGKnV27N4kf2RUT5Y6AQPnh0wYQtYvmUTqoqicdgF1oGxv8FpBB9qWHkbSmMpwaGYGBmK9H%2Fou8WIBVR0gyBeuUHm3XQfXQGTKnAUWiMS8LL1SCd%2BvVdI46tWwn52icx3W%2BFwf7Yqyq0NNIQIwpnG0nTV058L1iNOo%2FxikbHuSE5VeamWSyNKsofGIeNHXgeb1feSULwT8kyI58BfiHnbn55GNCfPrMfgbI5bbT4zgEd891QLk7T%2Bau2skN%2FXEhxmNqvvX2Yf4TNJpgSavsCVwm61qNM67Dunh4lEna4z7Khm3gFbaP5w3wFJ8%2BhCkMOW3bs%2BfBK0IRJfY2%2Fs2oYKF6n0hJpWebVKghpbehoWuR3AIy9HPEh4WZR174EthDKGJdsP6e4ckuY%2F4DJdnwtOWLy7Klf%2B4PFeg62vVewjXo26hw5p6oMo3nJuI1%2F14r%2FtbFcvvlyQDKvkwZQFrYZQKjUWm29qfj2EZLxOrye5dmFR1x0gOelxJ7p2NO9a%2FkhlZWQBHCaqvbTzfTpFFatPxHNSqK%2F1EIRzUIHpDW5e0PzkfkiGGZPAc%2BbOnbhCMLBGTpjjQ%2FTjLpjUr5Z%2BOZWlbOz2SdKz9ndGUWcy7tpDA1E2Jc430L2x%2FyGiTjDhhrDypPMKN1iuOpIp8auzrE2wOnzVtLcNv5ncbwfW3UXi%2FrKQqD%2BE3hHZFGHancMm7JBlUbTbH1%2FJfd%2FH6AgWVfvDrtUWJ0nZ5WKqYBKyWj2OfHsjXMc6Q8cZQ4cbZ3KM%2FzLqTZhkoulpKR7O4ImRor44CC1CD264rEbj3935WYyt%2FX54GMTOko%2BvnPuw6jRCMtrmlcxRKC9M2ASSuFykXZ%2FjtKQ7RdsJr6h7WWFEgBOaIlvLQ1a4HAUAtgKfDs%2F%2FOS23vdE3K4HA%2BaP%2FQzu1TozJFUW%2BKhhe%2BZ26UpADKJHuvq1IA8sM5DvNNWZunRGgYTRzCaqgr3%2BM64wxYLzVrnq%2BXNEtcD4q545AlJ%2BeWw9FCJxbSbPE2ygxFMhtOnZMjdGm00fMLmrwa8hvGn8a4ivb6iRBZlwxRdqaJOj2Ms3XXXTt%2FG3hBFnKvl%2FOaxIa4LrhW5ITLkK0Ynef2jGHKyeigGctlPSu3isErfUxYIHUp8VvpqJixsxSM92d2rz5zNYCYgHQ%2B6pQuGYFC2Kawu9AN3ngWR0%2B4jEL3Q7fUacsX7V%2F%2B%2BEzS3gRVpSARZSatFlVf2CytbjJDIbNAv9UfWdFoOX8gTZbCfEwVNZUJ7SmXN5%2B0xqbygIGF7zEOvkjm9vFVg%2Bz20l7VWgPqLpq6NszP6GxZB%2BEF9BEjoKbzxFqBglWE89x24A6SfK1uNxsJ0BkZEs%2Fc2WybuQoYLQZI62fjbQxYP8yIB7q41HrcrIwfIjxjQ2aFq6LVygPmqzT8hUCJpfJAVmPiReP4ggMCTCQlvLrAZ7pm2Sd%2BJYWGsylQA8yuJzgILoOPHfGMMWNFFJkFWUtL4QHo72MjGppQCCFdK7pe21bCVneDNOpmsH9z43%2B6cidT2WyZOL1k1vSouunetiNsOKQ63Hpupt%2BVV3juU4F5V1nZqDmdv%2BRvnk1LLUL7Hu2OtUBvbYwcCwdxCtaeVryiHqkpauKF8avo%2FzTTGTvmN9JTiKt%2FrbF%2BbNaUbJ2N0TKFIr%2FbhIy8L84CPadLinc5G%2FOVDbm3IZQUgbub9XF1e5QYuuiltYKxDhQ4W8LLRFVgHRdIBqz2Vt9HxdKXwsomj1yaRfnt%2FBLhchZXyUynnuNwf%2FXiPq5mMajGdBjCUT8hZxtHieon%2FA15ehzanQ878hjxk2f%2BXI5gfkMhpVKVu3u0VkYxWTDJb97%2Blpm3NJFvf5LJo5Ys%2B9lJyImX6h2RJsEXIN0XA560Nk%2BnsNQl2K6UAIaHfTJoG8PaII86Jg%2BmB3G2cgJsOpm8vJgFKlHytcCMs5%2BihG1pMv7BieHpfMIqHoNEb5rbumHmsTh7vzcJNx%2FXzSgZp3GGVzOl01l2eGpT%2FyDcN0X98lij43HDlu5it9X7nOyR63DTF%2FhrX1JsMywNPJ24nyXZrceMZt12RKbZaYFUS1cS3Az4C9%2B8Ni4BC%2FLJ5KaA0nxX1qvyCl8kp2BOXYZ%2Fohoej5Z0LLda4i%2FIkhlap87M2RMI3KyX5wxNZGj0EWv7La5FtiRX8Rf400CQoI%2FFvZL4t9rt%2BQdR0lnVjdyZoZMcI4hSbCiYDSJ79KWV5yXLwYd7OBclHkX2PE7%2B%2FhNEr2C7X7Z%2BDgnP196Yz0FmmvlOMtvcS%2FEEhPx6uJQjUFsmrC4iXpVzE4ykfOAY2C2wze4Nw6lh5mM7FCcrigmXZ3Ihyq21QA7oDB8zaAgxm4YihjzTEoAwvLp17qwqmnSzW2z63fuO7RMiN9Kdn97wid947BGTQOEMCBJ%2FqqnNNfF3dSaWbzRBCRzzEeJWLjCButOs9h%2FPTsFVblq%2FjHn8QsvI%2B739gD1%2FZf3mSBsPl0px6bl4LPuM3rDKHDXF%2BfzrIFaoP2cgvoSEGt9Sg%2FZ%2BuXiLhBn%2BNCTo9nIREnJrk29P2Dw%2B8S2rOU5N4HDtUBHZwP0y4u6uCD1%2FDlDj5kN43oJd4cjXZvCcNe2xjvB6%2BCvNHu%2FFZO91AXH6M1hX0qF3aR8fuR2NiWmgP8%2FtkmUlClGsN1DFv3yO8EEn7C5nbCA43njc81E5YU1Le400x7rUTQlUoH9oxmFvv1pXDbE%2BYMSLPbRWhJ7F1R1uMVspELRts3eCGNC7791qEWt%2BhmsyALLr6hjQu%2B%2FdahFrfoZrMgCy6%2Bq%2FFRqAun6TzT9829F7PRlIkGHrv8K%2BMv6yzTu5uaLlyha9AsXK6t0EMUJjJVqp1JdLbqNJ6qzacw2f7aQX5tt9VVOjgwo73XTOknvDwUNCikX54MbUkwJZsrZnOJhKjCXaXGa6TFjMeiE4GG%2BimR7bYz6Nl2GznXq8EoXnlmxrQ3if3Auex7FIZlfBS%2FRBuEi0jkMyJyQgOvL2EEJQVjzKrNVQ6lLjfK%2FOXWTFSxcy51y2WE%2BlH0x3JUm0yDX104DjNuqxu7VKoz3xuV0942I6cthWVaWAY%2Fi3w3dSrGXgIod3oCX2SSG2WUmEbOmgAaHXzDI7AbhksklVehtO6fsOqlfLtH9WBjXj5A6%2B0J282dkM97Wq3JZw1yTgmu2lZYs4Bh6Bc%2BQUlflT%2BBcrhWj%2FGsyG7oK0RVHLmEtFzWJTrYB04b4JIHCj%2B%2FyvMpreNAvOpG9kSrm%2FaK4d9u68EWX5xlxlJfwzALGkEer4LloTfwtMxNBBnkf6OLgwPnTqrU8jTvT78clr0mmxi38BZuEgUawcoLAXXAV83o0k1hn9dJptxXUYL1x3kHoWwdK8wQkSdx2JhcRHcCQe4Pdh2disBhUJCDHKm0qU985yENzYkM5jHlJIbKRhZ1f0E6O3R3rXuDc3sHerxhcLNzajWKqrRI64gLh4JKtmm%2FGKxiHubHCa3%2BNd1ZB824mx6gvn%2B0vaopairgj4TCzJCfLsTB%2BvTeSNd7yrLEcliIx9yNxjRIHR8SH%2F5XfdjYMqhAfdFSuPA%2BvNtdsuE0dqWn5wprdEjcC8PG%2FUPRYb4X%2FwgtX91z87R%2BCWKyd1gFYPo3Npj%2F4t9RyeKN9DHbVJpiXC%2BR0mdyy04p84pjggm70ocnFy8r7ftfoAc4tfWK0RRGCSTXg%2FU3bVRdoJCOfsNFykltrR%2F1nBuYw9fTaotRfTZ%2FnxE%2Fwi6ISs3J8pMAZNCl%2BB4mHllr4AcF%2FUECDNKyVkoEFRclb1MgAjMJM8eBzUrOWbp8OxOY2k7gUnJEUVIM50BW6rbwpjMGsDOmj9l23Fv7rBYPZ1JqDZ9ENEMn5RKiki0ZL11UXdpT8o8CAgX4poxpnI6UvzOvT864ctKvc%2FsZ%2FJb72avfnOa%2B6uygR8IDSG5UZrC%2FKwGoUGNfLq2DTC4ISmKRyHMS8cm5BOS4q6pEWrSIOoCJ%2FYcC%2F9oY5OU96zaWGj59%2Bb71eDfhSbNZkokWOa7xoBzppgEmJbgFa1eWg95tToDS9q4IJgdISkP%2BiZup9iUnzc7MLxytCYjdeq1jA1TOAOYrdVF2GcwcnuyqyfNq8teyjOvhLNHzBeTcktp7QO8A5WSCHkw5jTheEbVHLSsffN%2BFB4V2Y8MDr6AGcW8bzPNRAbj4%2B2rJzGBdPBljszIW6894JGZ65A4VqFCn79Ek3oZNJn2D3hI8SIgH3KdM1hWpq9e73wnw1jd3r5CIG%2FJX6BNbjE71JInSxcb2EdKSpWprXKXXYOxVtuebsp4a%2FoPPV1jmLu5VItaNOiFTamFJDwtX7k8%2Fjk%2Bli6LOjffOi%2Fpnwn4o%2FhF99DrAHo4cx25tLdmR6Yr3U1FTcgZXUQ4FzhVYtopyYJUmlNr3F3SNZRUa2TvGyiFHRx5cm3LK8Es4H5124YUA8fnjcXKP%2FotsuQ808M2h6VzA1XHWGGqFveD%2FyREN4EtUidFDIGT7rbSM%2BtPkRJy%2FegYn6tMx%2FxixbjlG7rcRtuu%2BgQRx%2FXsnZ76p2PYDz0KEyS3tLKsWiAV8ib5ZhVsXCuOUDfyjIPt%2FdR%2B8NMrf4Tq8IzjjWU%2BPvRzJVtN6%2FqY9PSZaasbAZ2AtXh7vaY4JWQ1oaAgcOJ6l2U9UDSzwcw0mdULzxrRdECheeY%2FlHAmOyCM7AxczRDcQ7XwP1vdlQzrwUwK%2FHHW8SygN%2Bjl6najnvP%2FOA6zhMgQpMGB8y9YwHTxePysUiSkPGbE6m0aJWttBtTiIgvpHILJcKB64suVuHIhHe08ktncGu9v1Wl2s3xbRJ3B7yov7WLKHwawyjOAaMiXtvkyvSxeEEQ1FfW3AdpCPh7%2FkOmF6oMiiYywFXBBlD96JSSB6QEpdU1qyJjW6Ggaq6EpZoXWRJ8VC15TLG2CYQ9PCcxzmcCtrwTXEMf2%2FNvgLttYSIXQd1W2h%2B7jFvp4a49NEOmrz4O3aJW6baQcf0h1J3Sp3z3X61rlE7na220gAkAd4dcuXdIr7AcqM%2Fs3pAcSodO%2F6%2F%2BdXJ0FzqEWP3lzaUtihA%2Bdg6xpWyt9ypy2fDkflhEDxh3V8QpEZd7inqIouHyBiWFimO1ov90H2HuGKfTbo%2Fmq1jGT9mXXm4%2FS3ADlWJBwztoFa%2BvkwzFELeA3koqA1I9YDAA6XKaeJQRzMnK9GZE03WV4WTQm8lGoMmUa%2B5EmflXYQs8pL1iSgLnhYsguV21RxmbPFmg4S51bBA63%2Fh8lnWhj1uXBmhRLPbBEq0DgjB0tJKwnOdJZiqBpIehkxx61nNe2LodFjd10h5G5q6hWXBb1XhwlNxK8yf%2BtAtxxpJlVb6swe1TrS9KA9fc6KeQzWWdJ6o0f6%2B%2BqKjLHrxKKu55alF5pKpD1icjhdMPqxCv%2FPypSi%2Fgs5ALrm39gIh5dueDyviHPEA3TbOUuSCPH4AzevZLRwcie7fj47OGnhGbK%2FLaU9Vig6LhHfr6PfmyGePcobfF1tmQYzsNvP54jHJCLcvCz9E6Pwo%2FGPXm9sk5fDygCBfP4duCWHC2VfKgxhMj6ITpPVaeEcfgHylL7wJi4x17E1SfyjqnL%2F3uhSyzLb1lUoByhrLcfTjtRi4qnc%2Bo1scFnyn2Z5tB8FvT55E64GIr%2F%2BKGsRUUMwcKdMywO%2FOEtoHWvNzwMBlLzYHtHg6dvOI%2BbzlZGGglUyjZMLZ92WrstgVgkt4vKYbmz0yTI0s8E6wwGEDi7wL%2FIyIND1rnNvpQwHQsijf%2FqkEngEvYYfjObIuRuKH2PIUqZh7WveNjsEYV4ZleIEEjsUfbfJ4L4NmArb575FuvXyuYqbOG%2BZNa2GZCfiojrXYMoxRwQAqiOjR7%2FzLHbCG092cRkNl3E%2BDFgJtFLdTFwh2SVeunDQnS2a6k2GnEWL7CDNvPr34zhr13pJnZ78ojrd1ps%2B2StNxsUpo608%2Fa7PHeRd0eFt3%2FIVLgny58V1FWU957HQJ2AHee0BVP2rlx0w3WFdrLtgARTLuGkvHu2%2BNgJKvAkepp%2FrScWJRtbdHgSNsTh5XXh08Fh1ZfseblD9HVD30JICTRl2SLx42YBWFAnVKJoUTDBCzugWyx4u8iVJ%2B6irFeMW%2BY6e8CsKYg4STx5HaHCfxYldvMni9J2%2FBEhnXF1nQEZs%2FS2vtLJePblK8P2T4SFa6%2BY5IjCqsIJBryfiGUCHa2JNaWxrW8L6ALUYpVINkQKf19JPffNYUV%2FyJv%2FRCn8YmVpVuccUVarh9zpGF0KTwGro0Bq4%2F9gZVryLZ5HRtV0GUOQl8hXSI4BdzCjybWnmrikraUysNIuWaWowwV1Vd2dNOcqj3hZM8nQXG9q6hRZdJlU7IL0ht7EAlaN6bBHbyheEAatqweftOzhgIuRBxDnDmuTbEXiQ8jpSjD%2BCHz5%2BuEdf7WOkbZL8x7QXg2AMRpRPPKYy4GKHWJbrQR8IKjVLaBBnEetgECtatlGwS5AQoX%2Bk%2FBucQykn792bfTtdmi16q%2FmFSq14%2FRkWtSI%2BHH7egb1G%2Bm3Pnez2xKfKjcMRVTjxLq0zfpK6cYo8mRrYZ2xwVs2l%2BpHODsHCaFkCa016ZMBD9bT8WdC6BfKw4A9YGRmsIcm%2B%2FieuB84YY6mHwH76gi%2FdYkurDm1dYc84vZNBnd5DUI01uaFnk9AYzw%2FpXcRiTJCYDjfptMbLKrpHdZEm5kEbpy%2B%2BASldllaLAA%2FrqGC41MlYsNfqwaGYD1yq7DvqdUajVeMKcptL8FVhOPF5gGyn9%2BA9KMJFoeeXCdc9xLXa4MnK%2FvHVMfQxuoazcRm66Dsbg%2FI8mf%2FN4zmdPY2U0Wqp5nM8yQomWsivCcIkSLlVy9%2FS0uILJjqSD5Q%2Bmhl4OXBgzRIq5gQ9MYVu5pwhKG4M3F4SgzpzkfOo%2BJEJf11QXUXwat%2FF%2FMLrzKVXwpE5ht2JBVKESxL391oQ3PueHF3arA3eXw15xJc910aZCeP8ZWqhykT93ZTBdx%2FNdnSIkTeKMGQEepMrjDxX1lhvkz4sOx8Mioj0hGiGUW9IUlbskwWNalHcaF4cknGfierwe1KhKP2dmbxLd8KTxBECs6nt7%2FQWt8HZ9dgWRy%2BlH9EUjXBkQyOSJWSWK1LLeAgCHkdsCJuNh32ZmlWVhN%2Fy5TRuoTl%2BdCtn8aq3YUt%2F6OmNhvHP%2F%2FKnYTsrJa%2F4TakeAA0nxXtKXjzZZCrfaKGsfthZUaBAIWsmYnY2QFHF7useacJeUsy2ymZr7eonmSy0SxwDARgaww8z87giEBz8oFkkl4duJs12eK3%2BrWY%2FZVg1QmlJhMJUo43hWBtzc%2BN%2FWEMWIivgdwcty6K9O09SLdQVai50IrBlc1fs86sH%2BbwL7m9tMpuBnVp0ZlczZfT0EEJ0Pm4NcImYTiu%2BeQ6OZUg6Yz0qLOB%2FL2D2i8Q6QQnnS4ymeujU083WsTnKq21KQICIJRUp4rX5xQPXNXi3yxX7t%2BtIWxUlEc5KFAUMvM7vVn3nSfLi17xdmUBQjDakfLTRvbJ%2BnhTX%2BliXgwANe9QXwVLbZRD1klP4m6b%2Fl%2FxOZ6JHWbaMH6BHpej%2FGo27Co8PzYWkDTH15drJPfljoxvNK%2BCOQG93DHkaA8L4gRu1D0Q8krAMAAXIoyrwrGPCA4URMJGkskuufuQSaj8Osk1hNYsDftPJUsYLTJkc3z9UvW3ACsVKpw8s27qnnncQvF20a8SjPC8dFBTIoLDNi1Weei7KPblbQaztM%2BhA9ZW%2FiusoNnsxMosgv9uuyfB%2BQJDCbcgFwmusMDe3HZCndlMBOYRqbC0eq5gju4CS%2BxB2kimamEJhGsoRW0T2QyaeHftrXK9ObDUPanQmfhFG%2FFmd5USvvcN1o7TFBW5vdDL038ntE%2Fz7rfUs2xnXwVJQcdrtD%2Fa%2F%2BgAAvl0Ll2Qt4iY5lzi864oyANSRwx3RhNYWvQOJWWio4uja%2FQPW8u0HP%2Fq0nRRYWhPAZUhUioXyV8mEiGrlPrDKKjdXjgsTaAYZ%2FjmF48hjOWaOnEDC90ctTJdmQy6aGaPaAuY0OiIi3mcXHxk%2FNuH78utCrGTyzcp1SqGTk5zoFuKEJJBN0m5pHBvnpPuwQvzp3HSUL5puOI1ilcQHKw9iyod7Fw3g4U%2BGBgGlkLzJIBP8pgcffCCymc9u0mBnGrOdKITL0NUu7ndVinuHG6dfZ6jbERGUvGyG5siJMN1p7DWFkrvJlJcsjsh3zHu2kulVdicgjCt%2B73veqmPWa4EvJ%2BDJuMZvOvdt5eib1a0MzWnFbeldr82snL3hBykIDxN7zoVDEwWi3e8cA1P9IfPnHJwVcieQ2eF9J8bbW3G1F7V9rRDWGC%2BAoWe2z375%2FuG%2FcO7AokRd0JgCEaVwj2SsCuc7XUKLhNlwgQafjWfoo%2BKaCnPoIsEkuN%2Bykq6I6zqtd%2FxI0C2ZoWKtvhd2BwZOktQrkxNqep01VNJam0RlBt0I2jyCzReuMVaioo3qaDiZBJuXablz3V74FzeuGzFwMGaQftUft6jURdTBxPB%2F4xMReEZob7Ws15pDKa8dVjW2Fcku2J2iT4ghaFs3svZb2eGk2d3mVSCcLF6JghZ%2BXkaoqNkc2bXIQTPMeWblVLI8Xkex7otp0k0baBYRp%2B58tgm2COFlEWCaKAa5YV0nT6K%2F2nmO5%2FmIthxqpR97wwgOXJnUGL8Q9w6w%2BXCPmu5XArgy1GgbanxvdTyIFXVtFxK%2B48M8l7iP%2BbgLyxXpCgrEnGQBsfgABBsbLduW9qvXaSa4LurhLuE8gn%2BN%2FljAwlzA4BmTMwlEJiyvvSiextfH6ptxtKpXbCEFoBydF66amO2KfPAOyUHgqDvnarrXQYE80R6n9VSB10%2Fn8lSyPRv2W3VqiQBLFkZL5YtnNn6SNOAPg458rzXQgEGYKf3SShn8kWXQaIjzHKj6xN0OoWocmwq9%2FdtdG9nh9N%2FkHciH86fpwPyDxjCz5mNpdctVaaaHv8qvi2m9G7mEERsIwvhth2ryQwZVUXYngeCDFqE%2FN8ZqyMFE3la8m8B6P8qQYAPxI219Xjd8gjoWMoRLYBfOc7J6Mehi5GnIHZ5l1Fb4q3SdJcJIegwZmUMnKELkB%2ByoE%2FnfRRbnTcI6U7f1saOwLJMFYnc%2FyQLSNXTLZ4ctIh9RiEUSE4UPlZXfPW%2BaQe46HlBLhMJkFtvoTRezRx567IGKBKb3nb6v15WBHtAjWpzNaiWEqFZCLjTByxwhA4L29keSmqkyA2P4Xd6FmIBhwQDp9pTKX9qX5XPehZ6sAq5zvWRpNHX%2FOw4dgXz1RJDDJi2Pmn6g6e4HXShDPxCAD0p7et6A%2BwTWzy0AARG0Jgt8iwFp1JGunW8Ti3vTa3LxItbYKLaSlgp5TCf%2B15DS8JY%2BvO8M8zWd61WYpE03HZzdI7cNFFtMBE0vW29st5zkRwhBVfOz6qes0xziu1Hqm%2BywsjP6sEn8ix%2FVnIVu5y5BqsNMYYOnLfCraOd6IusVDVgfVmffGl8LqrC2AnKlr2ZNGdXSU6VBtT4ycahhBsYxrlM8sJ77RMyCcBCXmBHBYusF8kcuifmuqoM8S05uOEtjzcU41fETHkXBMBdBGWhDQaBhW%2BPSPDQLt%2FzBoMruS88Tlh8qjJaMvgUc2fK0ZnbO5rC4%2FzwBsCcUBnSXMdsa7OI6hEO9PVx70R8zkTf3V%2FH9iHlq1SnmFJhd0KCZ1TfQV4snThsGH73dwrzpC6v09VJ5EUQCkBgRrLRMdBMCQr%2FWIHsScGf7ROAdYA6U7OK35IyJra6kqjcmxJn5L2fGw3OLSSafy3Y3l0DTC0Gf9LTpTvP6AjI0viUljBGQSGsmWr590T0mKe7dEfP6dTOGCohNe5sgs2Z9QCnOR9W%2Fw4axxPwcT3Cjjg8qShYakL2ksewrWUKcPVAgpchhkWycwPGDBbDR93JVBEehWnHbW8Kz%2FmSjy5NoZw5dm%2BXCQZYOXSKdRFMcU3UptfVwe3FdmMzi4qYrbpJ%2F9L%2BShwaz6k4WY2kkj5r8Rb5U1tMRb6C0QwlUcOD%2BbrzedL0RXS2QGwPfsDsCioBHsmBHqZ4yGdY7F09bNXS1xNPNMaHbHvJUn6ROUirxBAheHp4llqy04zcRCZN8e1lGQIAciM%2FDkClGqulMce7PKSZDg84WkAlGWUdYk9d1OZDnKDCilXXmOrzL0BLe5w26LrcL0EqojbrH2Ajc78rnZNPR7g393s3Ga4GOwR43NeXBWwFnn%2FfZAi1cEcFeKfSs7mfcZzHU84Z4RhMPiiEl8dP6gFJZVHSuA%2F4pdrZsPaQcYxHjjiUvmCyRVvdd8WIoAe%2FGetUqFN7Zzb1lx55FAxiAdfl9ZVHXVYv9ImxtzfPAg1RnJGdrLN050a0%2FKLSpioUaRqrI%2Flv7E6t3AkOY8EwTko3VuS2Y1A%2FRYPLTWciuIkzWpzBC9vt%2BNX8ZofnB9MikY3Ca784Pj22tZ3NB0j1Cc826H7kPtjWk%2BFREWCI6tRsUoBUritdsEVdReqANe6w37jQDAsQ3dHWEceeGPlzqWy3h%2BW4CssLJelVNaT6DlyKWCkVlao5VbMlsc%2FgeIm4YyGbOWfzc5L1HlP%2BNU8qEk5QX0lQik71jknPw5vil0e%2B20uMvkpy0tC07l%2FeN0M%2FqAZ8BIe%2B6v1g8f%2FyepywaZw%2BNg0MsTak4gPok%2FpZob6tOFpUgxur0fKo1D781yOLWprri8O4MB%2FeGRWBaeWbQ7zNf%2FoBGXDfLL0oFbG7ONKtnfeW%2F5DnPg%2Be6bf%2FDQv3vutNxaiEj%2FMgDY2D64EQBbh4eLYSxf1Bm%2BaZZb9jglgtZJbKMWnfbG7WpB2887fmAd2whK2oBcv5FLtF%2BuDMa3alLXUgKhQUlVu%2FQ0H2aLRhbbnrx1HLbSVz0yLUWPGjutVdfjHZtfAx%2BHWHKQ5MumpzU5CX6eVDXp9ULr0RY5voIWCx0y4sKtUmISwMHCA6DRC1X1tCNi%2BW5duFgqobXQw%2BV%2FC663yRODuvf2e5w%2FyCJpuQZj0hTBg%2BnJxnOX0CrOwiiY7jBMtaoG2gazzPmg5LTU7xpl7tpal8mDA%2BOKVqjSZQmjvE8oHBW5haBmJ63Vt0WKoebeK4l%2B49s2P5KCWIAb6y5A7Fw%2FMWHkmChbu1Md0z3emd4ApdrJRYm48hshCBHSQy8igIYyYd96Zl5dxnTEhGgb7MvFV6JatsHk5E%2FzetLjs09%2F5nDn2TtzsIYt43%2FrluFm0zzNZ3rVZikTTcdnN0jtw0wLsR61zUj7%2FWOZkWGlnBEH2sg6zIWg8HGXvN3twJIiuNSboQ7tzpCwAk%2BLSoINcnsQYdcW3M5ZYIvH5yeOfUjfiNPrQs1UxkZVq4DYbtINK%2BzeJCJt%2For8ZXqVaj76jX4eKtu0ee%2F%2BTBOwnzVULoQBJzdZCi87lIHCf9XUykoTfGcxpMoARolxnUHL%2BnxQAxfYZ%2FueM34rEsq4ZH0k1qBTi2LAmfNZvWzeKykMR%2BjC6XboofX02Qe%2Bw6VIsFvnaPibQLsA6E%2F%2BDiHDiVYx1u9qCqULee5jwKi0zj%2F8T8HSRiqLi8Rw3c7YB4e%2BLKD3tTyQlDeyJNVi%2Fig1qQBtfjXCkZp00dCYpWPQx0r%2BSj3PXX4KxvhqcqDjaVTyNrJrG3tlZeyEf0%2FcPgFx6iIIUlp3UofcsMreHzFFdaooMuOSXiGpuK1BPNRsDXPACQ%2FomVO%2B%2F4JIinlfOu3JShbaNNl%2BhSnKML2VQfvqc%2BLI%2BJq26xFHrK1CPPngog%2F0Zavd3HGN4zuWdklC8yAV7oGjs4DKrg%2FMSrSVfWHrtIHMxMbFR8bkLZ6VgZw5ZsAt1bAhs4UgddP5%2FJUsj0b9lt1aokAXwaP1JSqO9%2BhnI3xoTXuGeZucnSbuPcbnSGmX65gxVhHtrLhDq9SmT9YIZBhbDRYoIF6KRhOpFlzvCgxcBX1Ip0V01EsMQ4Wd5zDjjut%2BX0l4al777PKgR%2B3HWW61baY%2BbwNaAKzTyAQ99ulm8035yGPUCqW2KnoweQOspS6KTcnRznmUwlFOnwQRIV5D6RATlh7FpTYbwfQirVEtaTxlmSnyppf416K5QclxWYfqFJ%2F9yXk92DnjM9ipj2MtHRNrwx4dbC8aKLSZdEe0LG9ml5bT9rcf8%2BaZCPiY5uhzKjtNENtsUCS200Wes0Nnh%2FDYe3c8bkOnxibrQjI%2FdfalJ7j4kcR%2F%2BKzzwXcd3Czlnx3yA10rzy5IH0DnUXVCxSJ%2BOnRHIAvKMAQ6cofurg%2F2Va2PWcFM5af2Je6calDCdY7zQuHcsiNwbNODYOwX8ZjR5dwik%2BvIx1KZOGr8a1ULWSyYvUrDQLUKlisCAhqMIvQw%2B712dZvbnDg1zHF5y%2Ba7qfatcKKIfktJ68W27GUKFxKnN6sSue%2Bjmq25q36snSEcRIJMAqLl%2FgTwGP6FHo2y5uUjGTnkn5n%2FdcYOcnRaTw3%2BlC%2Fb0KPvGDW159uqZIHScWXfTA1Le5cggpcHTjKN1E6LJWtSQrYZVXB8qTfIV20I1sHqRIQJILBSukdboXdaBnVuOt1P9g6dtJtu8dQeh1Q%2BlK9Moj%2BapJRcGCKxaLXxiLfNV%2BQ%2BZyYO1yEbIGwP7gOqoaH6UmKOA4NuQR8YDpvM8WJnKoSvz7PVKZluF1hHx%2BdcbU032jyjYo%2BZ4%2BWjT39fTtjbU9kLxGRy%2BmP0oD7sqrPZbb1u3culCZ1MdaWzc%2B9E4Zf%2BDDbSxmAjyRRv%2BdZanhbeBOuk7HK1r%2FyPQUSrSb5mmEioXsZTekz1VRclm9r2GiG4bLRcvkq4lyx69a4GTbs2ElcGXgPv%2F5NDV854qYUJihXXtdUtz1xr4NIwaoTpgjnleh9rhKw8REgwfrRA38%2FpHVWOEMYn3jBH1B3lRB5PYB5zqb6PyaIIW%2FYZkX2m37y7YEKUP9kQ%2Bsh0ik3AP6PDaUnV9yPRchkxxD917RY3qfoZjwH1PxkH1RXt73oZdTcoUZKAbqACdYwZmJbvtPa%2Bb3qYPf%2FrC76Lq7wMPHnuFiBcmYSJuxvrcAP7Wt6VIOtu%2FtWLbu34X3q0OhuwrTZAUokcbhxzC1kXZExCVFISRFO0B4JcKpjF7vjOoLMrTrwSE3UNPQ4NL6s6Csd%2BNc%2BPFK0gVF7GK9pmV2XWa%2FlsKMdxjQ79HYxK%2FaXq9pCqxWFkLlBljuAcZn8yazAFm7FYS5F4rfpXJNf4TnhNsvESCVLvp9j%2FSsKJ1yVTV8QlPCEh2r%2Bfxnn5mDXQXIMWoObA%2B0%2BT%2FfQfn5oVOBPVP%2Fiu3U%2F43RdsE7YZvURl%2FZJveogPOHpUBbmdfmjVPC6xXKW3ArZziGQNMaTMtZ2JK7e6L%2BFHPvTLm9cREqGOcb0LS6ThYpnJImOjkEVBMMtwDWQWodSHKTDofAL9BUfMgeq3k78q8XQXd2NGEXsghkOx8Hw4fAl7a6TlDm8MeVa1yqTEV%2FX239TXc3B6K9u7FwanIorUOTJzntyqEtX3fwlKw8gv6Do%2FkYVdlUT%2BJhoKdIjsGxntgdFucXnRTZOm0xbcYPhtYzcZQhIg5C7yKn%2Bo6fVikfNy%2F3HxOkzBwJQtkYW4R9BMuydxajGs5uQSeNuDBrYXoVVLCUWukDSLQLWNt3rHFqNT%2FuBoL%2BIcaja44Hg3T1uILSfW48Q4EynX73ElMcZaj0WSTe8DBTt65t7R%2BJPhiGKi7KGovgIkMSND7EIdxXuWlf8V5eoAF04Zbw8Psc%2BlR2CuC8Xz0TVNsuQHQZZWL95j89p5ZhL9Am9sIwu2nZqZk6rNZGk%2B3FasA1B4Vhmatmb7G2ctksij7kIU1BtRPJp1zm%2BVf98bWltOEFyEm6%2BM0vEasrqkl0IrqHo%2F4DZtCfac8auKI5YP%2BVtOI2ylwrN3O92K3gD6vyHwCu925SECKehKSrTqBITuO75x26Rmu3TijCG6JEv%2B81cDwVLOn4uDDYrGebBRZKSVTCo%2BqyCFYVfQftx0LDFPUDgp0P2tXmLlqcyp3SlV5IN75FkJf045qXFc2hj8pAZGeNDtZE6UYvYbNfAHmnRH6zTsiLc6zm0p4if%2F%2BBsNBlGUK5F1pQQVJP298juWdAHDMf1YUhRfW2Ls%2FGLM0Kf6Z35ZsphA%2BGIIo2O6iOPQTcsPk8rbVLIb%2FUI2EbVfYUsEg%2B1PFhqnBk%2Fbj5voiGGjBywlYM9yjCcu4doJp%2BMbFGPfY8ZKPFTCt2%2FLEZGSjIZG%2BygwpJBQbBhBW4kjFNgU9xefR57df5nMXgOkFtpd5yPjsvfZMFb1jk%2F1YMHRUU1adpQOV1SGHhtbBBEeuZXrJ7a0gYYFKMREa%2FQK8T3qCdZxJRAi40Eyi86pgrG1U4u87JqKLNUqWdya16EiD9UzymgWDndZemzW4Zx%2Fd9wKFPUUvhYWq20bpXgRDtFl10%2Fm5z%2BxXQqI9ZntNAgJuP%2BRQ%2BSzkvqFqUFufZ%2FyFA3UTV%2FVIlJolI3jbDSV%2FovqT4ZfS3sqqUj6it4FCtbxT5rmmB2tSfqkY%2F8HUpk%2BxLbW6MlZ08qAA%2BTv4Bebd6E%2BV5%2F6v9NiuSIZ5wOZdYEfg5DVsXn7YWtbi07FeUtOY2ghTpD6kzqKoU06wnF3LtiGMx7L2aG8yU4U7IY1ja28vw3cCJEGpjSSDEpc95riCLU70b2jyg9V%2Fd%2FJ4f5FtglX%2B8K6LcFFJbWjiACK8dQrz%2FNcu1IM3Bd34XQLrxM9SeUvMKUt7bu6qcjP%2BRqqW75lb6bA54u%2BoP%2FSDfziHyE7wQPpKyWQ1mbo0KNFtV6EyzJmmoCsWS28cwNQZ68NfUyvGcxrnOQP6LOIW8f7GnmRld2mcb2jNASK2VGUbfk0HaVwWgA6ioKfxkNlogq7itBbpmW%2BeTkXesTxN6VJqiizPu0UXNWXeKquXYmUekKVzePNGOjSA3QuxD8sUGCHhNiBjuVwfSh72TsNyrHiFNvlzVTaJj2bnw2VB1cwE8z421MeirLY6AvmWtJ3Zngmwp2%2BDTrkCA%2Fo9uQGwSz7KKtIt%2F5Nf5sxRtsAAaaHRETY7%2FsR853Ulne2xY3kq557W0KampOqKBZAeJwpwFVBE6Xo%2B%2BEpO%2FUVWHMjPOOC45w0Tap7WmcCQGWo8%2FVvFaICUBgoRAuSQPqCZtDYgcZoC3w4nQUb4BzW6vE8kE3w2zYb%2B530ruWImFlKcjkatiF6ushYxV9HzildhDPksVDal7qP18HqTaXyUStVYWRn3C7UWdlJKqATbz3d1%2BhlDa3flXkpQpD6jmpLMSKpd1w8IX9UPkPca0RY%2BI5769lD8sc52x9YJv9HVr7duSPKYryqOBjugvAcC8aBOutxRISx57XnAuRMqHLfRS67K1Z2%2Bi2EUFGDzs76tiJlmnLBtEcB4lyCkGLk22ocqTomUT%2Fd25gfT%2FBAwUG%2FSZBSp3W6iQyvYsYv%2FPDgl%2BkFTOHxPRhjUFvF9Z3esbSOCxGF8HtSZE57Di9cVpGRM%2BCOMlx7NVF%2FpOvHuW1Oq3Q2Ak8SQfm%2F6%2B%2FybwKqLHNSPKaocWKW1Y2q%2B6YcwlNNj9TGNvju33fOf2QfYz6anvivwn59ZeYfE9%2B5uor2wc96%2F8jsHvaOks%2Bkcq%2FWtsmo4wNsFSltsZu5Vmo1qSj10LrwecvAQRABuxl4SxSEY8vMcteCrfVzDxZWQq1r1j7A1cuvBbfn8BsjRceF3bdix6VimnFCA0khXoYEUw9Nx6J3drIZB2rBo%2Ba9kKGVzBaBWgxwjRNID%2FDpccb%2FJ%2BhCEoPviWq5THAXmFBEE3cBlOxFRzH2z2dYmZpLRS8DTQruViKd4z2UmjM89pV7i2SPKBbf7kQQ%2Fq005a1orwT9O0gsoEOkQEzEjxm6xfCtF5O0pQc4shMFFrfgpEctGxZQ1s9aF0vct33A0zVv%2B8Qzezg5v4ZY%2BXsUCQRSxeuu%2BIeivh4PR8O4jUdLjc9%2B9d2TJ2tn%2FQxX7FMUH0%2BsWhVCeIToC9Lef9aWwJg%2Fkbjego%2Bnd9sSPhWXWmsOyEgprG3L%2FDLKlhnVuGp%2BA0GunFIHdr5KnbdyQVQUPmGNqJJHYk6N7%2B%2BcDA2gwM9uSM9eKN6BgL1PA5L%2BXmSNutF6xnMYLMER%2BEWeillUD6lQbn8KqfnpOjx8B2imsCMCL0aXBuGoH9lbxQRL4ySGkYzM0HkqrrEfEXI2OGdkSQAbLbmIKzFxwLPnv8EwDd4qiWKWWC9pFbWNoq6u%2BLDObPXqG%2BeGrZJa9IZGaOftoyoARQQtig98UkZVOH96uDHO3DPt%2BeelUHcA%2FmNqoFo0C6wThLpliJxLJPO%2BjzjtsDeMYDx1MKGA546LDoDdyeNn4RWiwbgA9SrlAR1psob3yk7Z5ohVolTxU9eBChTdAICF8OVKKxLICxETEO5XEvy3P%2FW7X7ICw3JSHTIn99%2Bxag9LSLXiVKxnfC0suoN5QzTENwl%2BTDDCMXf%2BZpq5Pmx5Be4GaMY0Qy5AvKsxd3V9SUub5FxzNYE8qikhSv3FvW9XHmF7EKYTsIByOvgOxvvI5WsJ3Vm7h1ll9hBf494JV4MHk1KPLQnRkWGIN7DXu0vinVnym%2Fd2SVewF23H9MJzULUM9TVT4AAIouqT%2BdhFJzbKdksOAfSLH4tjnTM89jUc%2BzcMLB9R3ZDW7IeeETU2z9Qo7UUyadMbV%2ByARWzeIQiqVwSmSsbh4FEqmq%2BQKKyHD%2FFlUlf4V5OI%2FNE09CHJnHhy243N5JfdhAkuS1I0W524PpYWFW1cC6CJokPUtzS17T9q1u8OKAblu3WLwvXJ133VWlVAp51kjbKgnjmKV%2Fl5XmxmQdHZ6jftK%2B22Kd%2Fj4dwQ2pdHz%2FEkdBBdlizyKk1uuHASrMUg2OLXK5mwMeX2plQ6h6p74TsnmRmVCjhMpjLK4MPKWUV7ZUkGDUImPSGkJ4P8R5UbfPQZBqU2XDsY71jfuMyqP%2BKktC9pgsajVeHEZdXYFrE3ANz3xSGy5e1Wu3h3Mkbfo5i1G7urVLEKwk3J9BJ%2FG%2FDgWqbTlqdBnsd82Dd3HHT3jpyJ4MJFd1DfQav%2BLVMBw2TbZzH9brhCEXIhu%2BE%2BkEYkxoUSU%2F9kQap9RnXYXNQ1NzKgX%2Fp%2B6fShWmH%2F2aEoJ7P7GjlomLhlIp69fqfaTMrAl4Na2Qili5votwd7RarDE5UJaQDqLTVen2e6NBc6ZcwV2szBExwU7YMM6uoZg6anP2VaHKmt%2BQ80ddCdUytJYpibjJhucpsRpt4%2B4MLdOSDJTcTkdRBZjMGh9J7UZMMlZKGP%2BJaA7JnZyITD3kRu8eYOMGCjdRrppeZfxe0YnFFE9aN3XQh7%2FEWXwqABSfARPcuO51f1KGh%2B%2Bu3d%2F9pJ2Kq%2F2OKJbbQVVJyv2GV9Zi1QLoByvl0GxdTNVAv43qMdohfIK3P7sNx49Lxs%2F3QEvX8Xbi6IafwlUQB9zVrzyZ2xtBEH4xS52ej28yFUKtRULBwuyDiPYPLZbjVMOfvGcOQBKzx4cLVyg%2B%2BUAPW4YDIFTqS75udslAZNjwTlji0AR4SbA8UhxARTgwSzBmd7%2BvF9mxgZbaknAZGSmZ2rtkpaBzzqHRxKFqxdNjMqi8Bb%2FKucuRtI5el8YxuIWSvZ3sDTtfTktAQmwV%2F%2Baw5xj3tnuJHZNKfMiPVcOFoGVy%2Ft3%2BlIrQlRsFsbvBvJQnr2P4wlpI6%2BapFvrUxZXJ1tp3TORA2YAdRAs7SDu1sLdPoWATO";
//        params+="CyJ6gVeW%2Fgfs%2FfpEQrhqrniMnLBaCh%2BdElG%2FAXUIGm3rsRFHcibxljRD%2BOGvrZ4eNcOkhwc3CAGAEWNbztSSZYLrN9N%2BFBQqZvOuZGI6e5U%2BAIf1deNZdmC64Jv%2Fr9b8MnYNkhxUpkJweLKbPzf0VtixldloAcx%2FO%2BC16uEjyfqOW8GqiM3pgcZOTFkJmZ23TBSpu%2BNkyEvVA2bwnYY26wOkVVVsn8g5zKZ%2FpTPdjNHb0IsooCKGtOynD8IlsMVSI8ytAvTSSt4f8mSbWZRrCrKJaqhYJuLQXYFZy8QXcesyuHvzKIODMnOdIS9BQSM8N3r4o6y1CFuzgiPT3s1CPs7qgn2ZuG24%2FeIFFivPrdJhvqFyQWDwM0X%2BWgeay%2BU5lLZ4hXqdpePpLh45Tqffpp3xskJN9w3AgnXsavP5zm%2FeD2ICogzBnvv92DhEd4SvJKUmFWGSArCxON7X0c%2FGbO5OB3L1mAnh3%2FWijkw9BoSdrw06T%2BXCl2PQ9cBwP1KS99IeDKw4a4z3%2B%2FAHJ%2BoKzWDQLe1GjII0Ii8OEQ3lE87RYkpRT3FraFT6sMaKXEsifSjBHWxrDd0Ttfev5am%2Bi2te2ZFSzaAvQYwsbROPRLcQTZU%2BIXpGhVupp8xWNjXUY3EyelV%2B0f%2BLVsaqJl4aa%2BJFK2r23p6QkkrgQB%2FjMk47QZVBHUE4jTBFwmGhG2LiBXU%2F4Kxxoo3jowVbSxWZXPw%2FZw3s5vpXp75BiSiTjk5xIfjy5%2B%2Fs9Ekb%2B8XDtu%2FSPZnp33YoZRpJYAoWT1Edddrll7i%2B0d%2BnBoVcmBMz49BdxmV%2Bv3AIVxiJdTkHyvSOBNzLfTG%2B9i%2FTtg%2F6MjNEEeuxZwZF%2FdWo4NsGUrcE1rRJ4J5iZOmGPeA3j5W7sWYFoQxkL0KTztcXcfNwUi4shK9tTsMr8CnJVEdEJv3YYOFciQIcW0E0Mc5Wmh%2BoHSBsupJK9TEpvUgzH8zAxuEwSdEz9Dyh1b9SP%2Bv4XAaCE3OoWY8A2tIOgmJ2NjqnPWQHXw6uXCe8H%2B0oyBp0VfV1RZU6Q7B%2FEpCnQc0Q%2FlcLk7Y6TgG32NZA%2F%2BauGmAwRWRDvgZ%2Bcdu6fzRg7FOQdvCPcPuIyWo5FobZjCF1nOe%2FWKg%2FB7qOZQCIeNOueoiDyP786odyfpdgueWIfL3w4KBDO0tchtQoo9b3VrdfPNTAPziVm4Ok65coRvY%2FJzusV2js4oATKb8WqhARXlSm3%2FukT8zYxLMxB4ny%2BuWkPta46vDYLaNI%2F7KJi9vcYlxZkn2ph9QcbY376%2BvJ4OkOKuZjgR657mueMnyxHEkudrlmu6zpx1XjGBZ0SHYyH87Jzmixp6JHnnLdyP%2BdJ50JHPx0Gib7it3t9fqFC8%2FoK6W1c5Duh%2FEueOaYoS2kdEBcGP4ha%2BenrIJ%2BnfrkmRw%2FqEqeAs8wLqDPsE9NWlMTDN01Yp0QlZKqYE%2Bilww1sZv9onSUNmMlRoVY37jsqsggYw83LFywbOa9EQBXdjmo%2FV869ZkNeQpKn2%2BgGKEpO%2BZCFAzMSfNo%2Frxt%2FwP8XLDnpXnpg%2BOzEcgKvLSZiJSn7Xoj8K25%2BitZ%2FMyd0zL0v6rcsVChQA7wIgZ8aGr%2F2%2BYA%2FYcmH4y23rTwKu1da3IFaVS1tEhcoZpIL5p3eImtiHB7Oy%2FJpDUWZ2owE2%2FsYqHlTZ%2Fg%2B%2BjBrG%2BtFsKj2JEU%2BhHjzz18mCsubCwFe0BpP1Yva8FJFtCY7VyH4qWPXwMwsLN6pzyM%2BFB34iYznDVVtRnbUVbAITqZ9VVwmq3wWsd%2FE2pnVGooYVjEB2qLzs%2BAx1N9vDrmH1990Uc5HZdOkkuAJlnGa3jK67nYrH3nP0KE8v0kA%2FyY9%2B8nCyHNHDKHM3n3Pla5PCVuI2OPFLf2yAHNVrPD%2Fe%2BT9NQvlyZUCs8iqZ5UT10Cc3MylWfIJTu8SjVMhWodYKP%2BQvbZEugymhSRY4KNDZ%2F1BA5s4WTTpAsnMiuSV4iCWDObfNt2%2FnIMB7xBM6KOd12qZxuoqVW%2F90bcz7BEtuIYywiKS2tyX4uLiqdcdjjzmn2kFf8PXO06c%2FXkZgWd28mBnmouHQ5efUZL%2BIaugeEw3%2FOD81FW90qYdHQLuNpZ7ppejmU8DwIUCqXVEIsIHahRG%2BwgTLjYnKy%2BpccZRFKvoJmuG7Ty78vStHSVkajGOVyeYfd1eS9m6XF7na65%2BlqIKv2yM71RLGyiG4gLcXjs%2B80TCAtov7IIYeAGhxe1%2Bcx8BYkPF%2F8MZDPl27lb5nhAijOBmWQ%2FrX8WiYQa4F0763zKZsW1b9aK0UbfF1iJZaKoLLFFWKruyKKzR%2FzCpAwMx4e8paG7oDo3Ffhv6Jl6%2BiBuSoMKinvpkS%2FMHvwgcpwBC3Qy1HQy3PvNdKY%2BufzcOmDXRu7hv66ll4Hm32SYCbKDKkfq4bZtOEbZqbCOkpVo5Qo%2BZ8iu7v6%2F8yyhyCEoKKWW83RcmEaYsmbk8g9CgkPI9jfTx9VQwgdVWwWGe9rQr65MvF9Rwd3d2Jg%2B%2Fd2isQ16XwZ9l%2FmbpoKWdCvkZMtkReHHZ8MfJUHhEpPMJsQlmHim%2BYQ4dNd302%2FXdCgistSn%2BkeWI3shxh0LEYykHp7SfkzMrcrwWZkzLTyaoeeKEWAZkHl0d3B80u4nry5F3dbOqko4gHmw5kGNl2eOrWSyBks6J2IBE8HKuddb6%2B%2B2gdLyMglNylQl80c0ygqWRNoThVQXPzLfD7VSmmJZqAB6qiR9jIqgPsLkc9JJ1lPLCfilE1TRX2LDLhHNwzmkUMadaRm00x68SHl6p%2FawrecOe5uHPoPS%2BRuZkOIEugeekBBFc97RPDpaVEya7K5ctUgJgBTggcifmtHCVPv0%2F1rlPx9jqGXzrVS%2FsbCRY%2FdoGYv2pOsVogd9OtgVSfXWLcjz0gcFkDtMNSvLM3vZD2FKIT3kKMSK%2FBbitP30dQ3ON5KVP%2BoqW8nGXLDIBgAlSjQxBRikc%2BkPHxh3y%2Bb7Vce22tcIksb3sNssUGeocqsjQXKCeqIOADlKV8DpV%2BKfXnkgvCYCy0njsrEm3fZiFHnHR2jXolnSARdKukW0cSVky9YicHbUjUK0%2FzAQAISOCA0kJA%2BGmsd27Xv8Lfb6yw2yiYXk31oOemuwbFJFvQFIsnWROnFVddJOz2XPbx6YI42qxVOW9x%2BodUeKCmHihnie3YM3Z8JIg6QcKVmMha439GXDoo7i0NLKhknJDMFeKCDchF5fCQu5SWOtO5rPJd1XvLDEnc1YZC7yFQtGSwlp82MrETwzFdkR7kd%2FNCi4BiTUe%2Fz3cLcov8kZOBV4gWbIFgM5H36832Kkw49chz%2FMGWpVny7tk4q6FzQiZ0d8%2BT4ngHwr%2FZLpx93kdHeHVvf%2F7ohop8sCqV9w0AUM5W4f%2BsFp4ArZt%2FwZ%2F0o4Ha3SRusYxTRc0YT2cx2jMVxCSFotIEqhCCexQlywV8omz1lszsCCKBEXjjMvrsymbnMWfAQQ7kTza6l1%2BvDOAqt0%2FsiXDCGm%2FRQH5FVp4isXkWsTAouV0EbwAR1qPWdcMhHufMS1vTchjIm1yYwrjJ4DLVCGW49x7SvV6yFJedDRc3B5RGxTT7FqgCovgXMlqgLw%2FpRC2A2fPuTLlqn8jJXa9UnLSsW08KM3x%2Fvejz7DVyie4owFUQ7Wyzjqo2CIf3W3RAZuRs9QA0Trtp6dsH9yOQjyf67KnuAD8HdfNzl4D%2FgYESKJE4Iyo4unS70xIg%2BCA7wc4hkwk5WwYmCRRBT6adQPHnATDXxlOS8OoFP9DLVwqr%2FuYmtzxZtzDf6FR0bqHn7iOZ1BNj%2BsFm5orNl0yVFg%2FJv3tk0AjIIjOzauxvHDYaWs5vOylKAZY6kjaKTLlEvrLE7HNdh5B0Ej2LzrlAey2VosmiEUFwsN0FBXR1cuVUzSHRQw6q9xWtlWbBuzlhIlwfbxnVX0yp2Kd9sl0XE1kM1LyU4RdEU0FnYaYJNM%2BbI%2Fz5LDh9CxahXpilCTd36IfWRorJU6dNd20cF3pYj%2B%2Fdllqtt%2Bpdcd8qCxPauLd8dq8RcOl5V7XTxD9oab66kBkoamfVuhbl1ymfKdFBHnAnSpNy37ZkUaNBPKHjPGEF0zlzLPHU5SjLEzIq8WJzzUSq6gDZJjhehQrMxvpn1WepGWjCUG2ttK5nykNKNCwHb7RU0vud4MxeM49TYCMmyPowxmZTMDiU1U4hHEhLzF1QK1k%2FN4VTs6o4Lb%2BbMA5df8DBtrzErW8%2BjxxqD0rl8%2B33RC2jJIkqLwgZO2Un0ly74%2B8kvB%2BiXW3%2BEnRys23fFNJf5rvulcgis6R73bcsXzUNHkiDSmxRsyKx7pzklg2wVZu%2B2geuErWKGuNnhgj%2FTJBaTlDuvnkkfHbEamaJnCgbXelYCoif4no1ZwZgHw29SpRv%2FBjwp5y1v%2Fg8IHuM5bw%2BTvg9VEUQkscwaMyQ4OXQNd1mGNNhk6jk%2FwuRq00D1N3VwNvntXRmqM3x7GilyeDMoaORjXYD4APz6mlCSUQjUnu7c6ZnE%2FIhgvpWeDdcSw3ZZGkx5GBJbUXhIG2C5Dpzo2p1kY9SiYwpII5Y%2BrJ7i6KfGtaGIzWYdzEZdi29s8x1EVM5FRd%2Btg4SS3JEuaqucl3j6Q9E55pTSofDT4F%2FA55ayW7p2%2BAxA%2B0pgS31LMuPZdd%2BnYOrMZdHy18eZ8KAArUlWim92U4k%2BUkpu5UDHObHabigah%2BOk7xOYpbRX%2B1t4fcUQliQlBoXIToWrGiNaEUYAuQEQLUa6FIPL%2Ft6%2Fm1lesiYxMwPp1wy2AwWL86YNX6%2FLPyb1D5Ve3NmfuEaTXkAP%2FoGpwTSuis0jezUZryoi6NUaROhH71dk%2FYCiqXDG%2B%2FQclvaewMfOFf9DDktIq9TKvOL1AEzHhpagJrowDhfXp97A5xRsJmbC%2BFK2nCWKYr0aOSd8THZ0NX395v9%2BK7xFqN1Xrc6CzHeIMk7A%2F0ZT7L9OvMdQ5B1cVe1mn3T5ZEL2rIAosbja1hqqkq701TeVMKn4uDVPNoMK2R6iQSg5i9Nw8fLjhwBR%2BoGTiZ7wtT02XSHysPEnVqyfiiPVsMF%2B2OlLv1rxJ1asn4oj1bDBftjpS79a8SdWrJ%2BKI9WwwX7Y6Uu%2FWtPX6PtcPzoj035hESGtAmMjS%2F2ObfgKB6%2FUvvV1y5FW1GPmSzKjN7%2BUMsdX5O%2FxCxwvzxXvKag67pTmJrQQEKSmFGXKb%2F2iv0B4PSD8f37Rw1tnYuhN7T171mZHbbx9cD%2Fq8DQ9R77LgDXIlVyVlBKTXdj1s8xIhv6UeQp6qDIURpCyBBT0ZuwLuxtWbDPGqnMZGqMtnao1gNd2utYvxn1tz5Nr9gF0sx7IV%2FdgC%2B6Afyjyq9NqNcGF9QpEme0UaY3bJFkwmAZ%2F9ahHNqeOFYAW9h3uf0hSxyj4FlIfyyJbEW4kTtTKm2RkI8Ppar5ZkQDysgEOcAqFbWAmkkwbofRO0i19t6iwt56%2FTfVJgNoa4beqlwi22gib4Go7OtRP623JAJvtdJSM1%2B1Zg30p266YXko99OpefxOR3xAMn43cRvmDqbqJ3zSHp7qPqyCWOukvxg0K8naD%2BebrskueidemFGXKb%2F2iv0B4PSD8f37R53%2F%2BU7XXwXtkYRyjseHrrn%2FqckHHU0piJTnCvKhNIhVJR8T%2Fhj39L4mg7ZuEWESrhxaK1xPAgFBHyJq5YhQux%2BcjG5%2FVFyr4ktMM%2BvZQ21mj97VObXGY8dSNkDpZRxTmKKz0uQz004ktjcIXTDIvnUgRfJGGZqLv%2Bj5UdUTQ8cl%2BrKsdoXJ9RWrzZuT9rse4lVCBl1SluYoNc298zKNwLorIeOs7BL3KeZspTtGlHhE2biqfYFGlYcNIiGW85MPJ3VF5l8AHl62wPrXPP%2B0nVm1dpPAQ9pfKcI7uz7IMQiYd4JDD0CiSXx7cgtA6mMsiJVfUbAX50yVl3Q%2FhKzarQ9%2FP2WyjpVJEfOl6cMO1vqPaqbFo964kfel2hPz72UW70tYXAOFY81yAL6oxq%2FkkRT3vhW5XIudj5AdWQMMjiA246Rtv%2F1%2FwOqa0IauhXAzfib8surzSPuf%2FDYBCOrjE03M%2BwAIfxeKyHylqUpycl0Hqw13RhvAqADTzHxwqye2z%2BNLURaQkb0bTPjE5GtarjOqt25yN1iK5HFgYjtKItW%2BNMLx9I8dHjuJGMRZiEx0tj9W32Jkm8oriWTMfZMFt1ulU8DrrLGNBArrGZxVZZx7gQ9XasEfdzMQ3%2BAHnOFOZE35BrNLwHNFSz3qfxOBcPWRwrbg5dhTzyrCTnLooSZYAzgMSlvoNDbRHU19E%2Fis2FFc8fi545SB3OFIQjIDi%2BMxJEnNZydLJQN%2FGrBfscyMXqFtc18Uyo090YE5%2BuAsfVjodKa8uMkioSEKsInuvzJmtc8ru8Iyea1UFMAxN2OGgYaJhZ2elpxuBNfOtv0UQMtWiPbNreD1zrNYjSJ6EzDTG7EkALLpMsKi3wp%2FljEixGRuBankQT88oPrHeLHWWSFeFBUK5jkql4zV1g5YTr1D%2FsXAaMr6c1xEY0XwIwdSVzvZXWYaGmwfHyZaYh5zaDUtkzYN4kb7LHr005MsdTNYFiQqzDhllnyz7GB3j%2BvOgcJ9wH1ySs1Xa9vJvNlb4%2B6m98ECv52Smiv%2FbB7IOV9bsxm63MoKm7YcNE97aeNXaNSIoksnLd37ycX0LGj1Kk5MiVQzQqTCAMoMV3nWLRfdPCjWtUNswj0fGCn6XkyqOwwN8OrnOokVo8PtHnuSAAxJvViITR5PpG%2F4KzTp%2B5HJL%2BZqwr%2FDaLbvL3Vk1Y9LAyFudjdlob5flGF89GESBdRw%2FIcwtz6PWOFrd%2B9yQkqcgiXVV7qw5zL%2B4bSIDSUrLy5pLOTtFNBocMj7x3ydHrPJ%2BU38gGCBR7hP1IR4U3Wn5SU4BIwSrihJknyS5Naa0K7bwgxeGRr%2Bwr0Mpb3uFIZPIsFRPE9BYtWjAEFDe1EvLaUy0zsZBoCJadMt7F%2BIZ3bmT6aoCtRek1cgJ4huvVsAumrenZ3TxTCyVptHz%2F41qyTQJ3CP6%2F3fSq5C95PhMQ3CcyXObdTZo%2BekuvtDAsqLKa50%2Fb5WNJQwTjVlTtuK%2FeqOJ4e%2B2R49WNPUGSoP9NpCoqtcfVoQTzSKuiJ2lwhD7jBYj8ZBp%2FsBqZgshhIVQ7TOydOCIlX%2BA%2FIunw3xqYJjp5xPuvwv%2FjOJU8q8EoKWaHJkAnKNbN9eYLYZWjolPqwfc4tMlVqo66QPo%2B73KsanPtzkB0z1tbe%2FwePbe5xWEW4abNigVUlNdYuAYhKVoI0rvNwJwJams%2BFfPGmoTEL7Nw2g62rsW%2Fy9qqTBk4GwW%2FVynMdjQhOJ2vgr3lhh4x4ITFZs6jW2Yb1%2Fmsxj6q7Fi5pewv%2B2Ag%2FgjR5zsHYPn74vgziClrTN5%2FD96oGawg1cMKdDG6enr2zF4RvBwAq4bEE1EDCBA0v%2BFssaTsuv0qaV%2BfCKml0RAyzLzF3EhWVhtOmo7v8RXpznma83J6QGB0xH2o%2BbmZABB1BKFcpCedty1nE7re9kxa2cDdDRRNJYo%2FM67Tu03J6YSG9mzc%2F%2FdRf%2BlRkG2gvqvPGdHT4%2BK6sf%2F%2FyyttW30SjFhqVucBf%2FANIyzxRzOnxA21Xp9EUBwBt0F9kIv45TckPtc6daXaD63muXONnQeZzYjDsPQPT6P7CT6z07b4k5FmMKekZck8%2Fix1Vvu7q4eaZRrn6C%2BsfLjM8nWNU7o2pb746Md9gaYJKPXzxSbt6foxscSFiwLABSuhohYsSJeTnyHwiBqW2LKY2%2F7QD9sCFPTFmPFePaDEikU%2FjVkIeOtaY5YoY6dDfK2g%2Fu1UTQ7Vtiow1%2BGiNIrxN%2Btqcx8QSgf7YJAEzEMiPt98lHkEU4nyswG68keEkLmm1KzwKER57TrwufrgJZ5C5NVdYusdItkntWC2XN%2FCU%2BclxA1Uiixn2GR7r9DGFrEzcZdHS1yBFOqHyce%2FKBPoya0fZ1cFh7ppxVgco7t5%2FMuGdSKfKcnfBCT4JQ5gtGw1v6gMV0Bg7WoFDZ1hwqULraV5dMoNYgQlMyIGd4u12OtlVThIYyD9ClX8OyvNyQN%2Bxeo%2B2BwYivc90DZs4lprhUssLfk4yoLkKoXzK1DnqXjvDFb4WFrINGO9pUHUXVruiDJbOxmjudz42%2BTQIbEEaSO7BljooMsihwmMnmGth%2FJZyfwIDV1RoOjJzQ4c1yBW6YqNPN2Ag8v2Rxd2SylL4kXBBTf3TswR6zBbZWwGMpW97B%2BLkuf9UTp7XRDXFsmu00oQEanhIp6oMcSL%2BVNn4iImGjH8IirKzL1ymOvxRwNvHmeSICiBZP47Pno9nv8ng34UIH%2BkrhgENW3Ra8JH10GofxugCuTFPmi4xTnFe4DiNVJxrD0mB5vSbT7D9XJNlVffcK5%2FamiTjv%2BJQKLdU9IvItZZg4iYMhXrGicbLK1sGaP60BateV31wSNScpWnAjhTPHfvujF7ntiaAc%2BHCW0OSCQOHV%2Fgk73iOCEkRWxrKwv9vQ3bkIFA8gT3EOt%2B%2B7qM2XqcAsp8Ub%2FcenTwKKsNwKNiZkBtBASv%2FBGXGqiHIZfbJMSOdoHXCGgWnJP%2BJPuZ59DnD%2B7Ne90BKa9WXMTd1yh%2BZEQOA6OPGBowtwT8tIdYymWbQQOacF%2F8rz0obhMnIYcjNovCXeBRILc6uhUIydzVzJ78U7NgpPBA9HWUcjD%2FBZgu1aq3A3InI6572FWB49dMGq8aacSHnZrq3CsDGpsywDHMh9uydlZtWeikG6GXdKFFph%2F4ehoVDEXGpUXzgKmr3lUtTdngJAW6Loxlkm7loZbwIEAsAsZO0xRx14bzB7l4iI68PeeTtSWvThFsYZWU3pjxKcWkoPP%2FP%2FnsUdXelOPhABNW0Jl%2F5slpaHg5%2BOiSRbzKasj8MQyZfQgyz65yPDwP8jo1p9s32q4HxfBrwvwTV%2BuoNjxYuNAhf63oZGfje4PnlLvK8Uj4i6Bkig%2FrxaSV1s1ZEfRCMx8gpbHcbIXmavOsfrX4zxuk1MnCwL%2Fedk2RTI8zeC0%2FUSBhB1SW%2Fy4919%2FHwL%2FXof5uOA8xoIRzALdrxXB8ANZE8hsl%2FwSYSVQ1U4vIeaIDMpY6cRzQk3VAN%2F6Pb2qqHGjVI7pDIpn7C%2B3qusULujWO73GLyol3aT6Id0KFycFCMm%2BB7nuNnne9ZlBjd%2Fg18HDttCl0H8EyyQ85kBqxw24yRZXmq33aGzObWEgKi0kmfGhhdqSSsz%2Fn0up%2BAYwaMOMbs7%2FfiCIaX1bIx%2B0dnTATaBX1UVLU2zF%2FOlp4ViymFjSL88KO8J5FEXdILgAyWmQrjgQRt7QS3dXGnwIajUHaVt1kl9g%2F1L0tPDOTaZMd9XysPGgxHr91VvXGEyA4dyywJykMj3SQZI1OQdinwTn%2Blo0ZZVKJ4OouLNbxd96brl7E8IR%2FJ%2FG%2B0zd%2BW5kJQLLCWX9rvW%2BEUif1nGc2q4Fp89h0EJMfjsU9bZKfXqidXs5czC6nVRCfFlQpQnJeNJAVvC0g1gTZaP2XyxV3e95Ko63G6M9gHCRLJJiAg17oD8kTnUW1tLHUs6mfCZX2pteWb8FTA039qQKh8C5B%2FnHHWJtdfjeNOaCAFZSFGkabCy3ItTbgSnUVrQh7v837YE44mCblOBt%2FxjGrm94n%2BcmJpI4c8mOOJ%2BKKKRGbvnj%2BitysY3ZwUD6fcyFIA535QnKQOCD2B178y7HcEX5yh9YXZZbSaeylauzuPLyeDPy%2F8fu%2B3lQIxxkruy%2FfO581Bm3szomjBc2b1ej1aMHpPo7cDS1bqDPurcBJ6cHAqqf83CmUalvx0Ek%2BJDPkZA9Mf%2FUPxdaJbuNjWSaynfX3O5v2Dj8U%2FhneYTSH9eKk1K22oLDnv7DQqV455UaWZkyCnsAPUUpW%2F3KsI8Ul4tBHQ2FFPWVibDhnoIu2H97MV84KwZz6rty2miilM0bRSL8%2F27w%2Fg2M6ltj%2BHn6eQPG34h4Mv7frjIejqmZWqBDHPLUUAYJfYYUJkY57T9m7kj%2Fb3jMwrfFXaOg0Ad9vqJmdyc1B6HzcaG4%2B5eNlgU3xRGDmMg%2F82QD6hxHubHdyDOx4Jru1mWyAc1hEB%2FV2f6vKmsOHoDA5P6BLkP3IsSJYRCZ5Vh2EL%2F%2BO3bOYiFX%2BHobZWEE7RLBzlq2T5%2BSX3W%2F2NBT8DFrT0kJP9rfJd4eQmSjp1LYzUte5p2EijcU6IxuGWOltLGdPTI2anvgKOz0k4GdcmW0W1s4%2FDMD1mJKNxsRjtBYaEwgdwXHHfxedSPwTu9Dy7z1R1NtMUsTQ1orZC05kv9Dg0knb8JXSfADT3Gf4Ab5aYl%2FWAoVZxJoapFo7IDUXqrfONLMIBg9NmIYfzwixgCuG2kBweKNEYvSZxHohK9dk4Lkx2rGc0KLRURJQiOLfBFdj0FPHvL9GlCfHkxYjP0gS%2BbhNd%2BUgZttOG1iYWe%2Fz4hITBd%2BtEkz8Cj4YtIyN1Dh5xK6TuqRYt1Qv9N0FDAfVgpJermxRU%2BVP9iHEHybymGf3VmQ2%2FTBThshobjOkQW%2FwWSguLf2WPARoWrjz0ACqLLXs6NYlzw8hRU9eSxuSnSEsN2E%2Fz0Ka%2FAz9mG%2FI9zFamiWlyfJNKz2ivgdXKFDN3ASnY%2FBCxxh7HufUFpkFZ4%2BjXT9vCfVk%2BmEUJ0%2BfPRk0bpY0ZEv%2FXFNbvv0JGd4SwzgsYHupr7h%2FVAwHxwxl6ozDYpH165o6zWr9jupVKhNCDho%2Fvl3zFvA18gxQajAb5Ow6OWRO1kFDpkavNard3M%2BtKNNsNgBCMCJ69R%2FEgHcgQEGvVjd6q898PD9FJyDFBP3miXvT9ftpSlHSUYHSjgWU4Ri%2BBxbVRRbvN4OhgcjSIdsUAxX8DbtTn3CmVmijFmBjY8uzw2CLp49iWKoRyZg6tRDQhxX0XvyAENEWsEplKlGGfr0jslVeP1YHnhLCaAkbDrnzs0MikGGUYVccXd0W2s%2FgnnCGJPFINBsTHiqJxmvPBrjxHq4ufZsRcWuY8jBfeS6kFvt6KUxxFlDNVJgylH%2FRYd02RpfEMHv3MvJIBTZQ72k1T5dVP4m8K608NaZP6fROLas1ko6YdJAZbeWu%2FK06R1P3Gzq9NKOgRi4mqVaB60rp%2FTgzP8si7M6Yf6cM5bieir%2Fy%2FhowU0YnNdqEdZr3EX7rSGdb7toilT7mkRbUgIpKs844zd4C36JhYQNTbxiTwc8ZEiyIqun%2FiCAjoDgHTAgw3SaQbOAzgIGK6fSXyhmzcNvXxATuhTrZj72gLkVgOfJCWTK5AOVC7%2BWeBTZN04LN8GnxWzd6%2FqGBgwkUkU%2BNjr%2FZsfMU7%2B0%2FGD5Dx5l3J1%2FkZW6Pw%2FRB7anzaZmTH8AkM4Tq0U0f6KL5q1Fn8QRgaNRb92TvFJsmsAjKmgvXi8gM738ygWZ9mGEYc4ukfDl%2BXSm3KIPumVvd2pNSd8OcGpl9y1kSQiAl1Nss9eh%2F1Y6KBkXewZ91Lg2uiUhLqXTMCnqJmkwBuFxSqboirEsONMZRjibO9g%2BwmqsVWxLjW%2BbMB3IYUjBx%2BjF7sA%2FFQglpNL6bYP6ZSEi2sITDEEBwLFgghJHB%2BKI%2FLr9q4Wv74lvdRdNZNJERK9tX%2FMwiTMgsLkKywrGjThH9YQ2Q1KVW7YHOujbKYbU9lbnAaQ%2F%2FL8JV22snxl6%2FEZl1JIuwXyl%2BRL4BJ%2Bm%2FBNcsYgjmF1zlEzrNriAS9nwsf3WpS1do64hzwMizK5eIwAOYJf16v90gsTAlKnutQQWPJrg1MN%2FG%2BjeN826UU2VuUBeW37%2FRcQLJQYB22QCainWVNgrYpcGfBWy7eRvwHiaFialU7wQ6%2BcEgkNawZIn0YjZyc7O4bbOsparXP67%2Bg7ayu2thYn4od9%2FK5NfHaO3E6Yx%2BVv5WHfj%2BtFva5s7zti9jCHvQFaF9Y2FZs4Wi%2B%2BpQAYxnJ7p4Ie%2FnusS6BuTzF%2F4voJLmvcwPDf2gEVXDnPhgXjX%2BrSepPq7D5qegJyjUgAMHcs67dPndYqVSDYXBUvCDULh%2BHZ6D4T6NX4bzsDFEI%2BLuJtyMqGE8l09hVFPMYCHXGUK8B4sRdTTIYx6Poj8xPrtwEqMoqMWMqwe61NKFq7szmBzgqYF7ta9gLCG2ahUfmqcL7RUIkJnE86ks0t8ijWzNlW%2FwQhwq0U51Vyx5dCh7SIdxPUoO8V4FIsh0792L%2FSN1gFz2PIHqn8xzhPGUBYAGrlsRtvyf%2BS07Plrir6bQJSJ0bOY0lYTEaqSgWaLeby8iwkNN8vBTtNm3Hsx3l56ZAYbBmUp0dlXIUOxqXqZ6%2B9UJ06mKmS1ZRtrv%2FbK4SpWN%2BIVMPi0JsVii8d2gABdpdn5JZ3AZkPd7MEHsfpR1eO9m8vDTidZaIXBGqIathY7W63iz2PVntddUvLLqGYEAlZyij57pIGfYaH2LEAz9VzxhkoyjVzTJ2CL%2BxKlCgwBtU4M3SwEG9Fuh%2Fk83Iq5K6Jo%2BsUs5JIUtv9kXrVwW75ilLA8zeE0IA9%2FjgnMdaX2Wd92JVQRBu8KL0I1LsUc%2FDUvI60EPAODA2O6woMq%2B31gFtAqitpSpIFEDj63tpxo%2B09jtjTxJxyUB%2BkKBS8cBF7GR2qZoxLMrsp5ugHmAfl5xpvpvFq1RGHSs8xYyjrp8gSlgykVQ8mA0P7JcMB6FSOj8BWh%2FYXMX5M5e5rVvk52X%2BxuA2tjHHaA9u0RmAeqbOHGHGYdALUWiNwrPJF0emJtjvxhmnAPyGOs61jgVeSz9k2IP%2BUCk%2BUS8eIDKC1INfn0DVgKtkclG%2BXBTHXDV4HEe1TCKO2jf2BgEx2LLWHbQ9bNf8Y2PRnO8zaTS6bnQR%2F%2BlkCvDOrVLWnyN6ZA2i6AfoAEohKKsTHwBUsqmWvc6hHIgdsK1lnt%2BeG9eglViztlrcv3g2rZAHE9Shlx9ZmKAuNJR%2FrOTW772FACC4hB8EtV5fDXDL10rgmqFAJwr%2FgnL65z3snKOd2hBaJPxIUKsWzW%2BGlQ81z03pbFg8yxfyMzPPCA6DwJCppsFKgohMANeoZuduD%2FfnTJTv9mzVXFrHRAaloYKyec2tm8W0X8P5y5BZ04iF%2BQRPe9F%2Fj%2B8uVf4RGSgtGYUIJ1KBcytBAGZwxEUjJ4LzCW1oO98rpH%2BWj2CisCHNxR8xVpLustjeZ4hA3swfPLhAu4Kpei9ralYS203vtthLPpXZi5wEqA3cI3nXC6hb8VLD5CtCYE%2Fgnuma6%2BVs9whY4Ihn8ujRb4xna%2F52gUIn872tXMZ194HCMZx6vmn5wMHD7CrMooy2EE6bIhpAdR3%2FY7Bm17nnTSL6G8MYcvQtrh97zItBz93mb4YrSaLwVAqtrdsXMn54dJmp%2BViVNPCS7tWW4pWhE3JsQbcNydBcmmE0kgHjlYUfUnNvZjCsMltzvuTz2QMI4cqWi7BmCWkd8S627mprQmSV7PG%2BSqgeGAz4bRRIKKVKEoRAoj7Vkk1AgqT022xK7d%2B7jVr%2FmLItAfL0h4hLjI9AYe9gPO0T5QEybNHlhNFuC%2F6YBOic8yFOWIxIPZ8FpupgGpUQgy2MRsF%2BaXRINzOHSaIDeRw%2BPx%2F4dM8Juc43sQApBoruz%2FL6T2JU88ZPc3ty2eJqTnBSr3wv0I9vmasTH75opK2dRqm5HHgOoaMouw1Pq%2BjLWLRrVDP7keqMYbhrLsZ4E6kIXxvWPCQp%2FhWyZovpzPCSp8xBzcDln7Cfc%2Br4EQURGVtbGoCk1DE%2FYh5yURlg9LMu%2BGG3x%2B03D%2FD45p1FIymR%2BgWl5JkUW0C%2BBAQeZERwm0BIO4J6TxfKWC5LhF8x4ODRlCRdR1kSnn6ywqPTmCrkjrg0Tc3oB9ojKFJ9GjsmnYqP%2FL8dpJqOf3ZAutPTCn5LW0kWCsWdxstQs2KMR8IGTOIczrtHMpjOJKsT9dEe%2Fhrhjgs3stXsvakF%2B0qdUANlrzHXSFvH8UeG7cLyq3M%2FcP2Tw68P8EU86RHYp6BL3AqDIXXnjfhSkGtUJ7u%2BS6boAytwkzhx9aaezRhZ7FbnmMDnwIudpuQ73iEnkY9FFUQhOFig%2FuB3IneWh%2Bmp6er36oWVE%2B9Wa%2BXh8i354mGijDsPzHdb4XB%2FtirKrQ00hAjCmckNQ7Kj33Xn5SeO92g41oAkxpSGQvnvjQR5LqptHF0yjCJWWQ9qQUm6OO5DtI4F36Y31bg1WPVSzUuOq4XTlrT0sdrxpHIzYkADBB4qGN2bLwJkMWmwhfIRRyJ3zc0Jpo%2B6IT89WefQu%2FFxPYu4V8a2KZlz%2FZmw8YCA5liZTv%2FcvVLF2hh9dDewH%2FCkNRcCEEz7V2Kp47IM3TpDPlPw13Bry1EXNomQrKoQErIJyDkr9sSZAYOM89p%2BMzxaVaUBN6y6iz4BjfdWjwfu4LORleyPy2MU2vsOuwgMMIGgSduE8xzXv7KfF5Wb4zHaS6%2Fe5leXBCmRC85keWSRwiLAiDMOWJLa5b0toQkhIkDx%2B6t1Bh%2FFsM5CG3k2aAjV%2BIJe5RTI8Ya92QQUU3qNMCkX3O%2BOlpQerBVCgfomwBztpWnPP7zGHce9tDwCrVcWnhnNlRa1wiuF0cLW6VI7NemVdg2mbg2re3WLJrzni6XUwLIK6kH1F91MY8SRpwRtphvI40uNMmZEEDRdyXjbNF1UAi5wVXANbnD5j3JpSfNCN6IqIm%2BKQVRtQPE0%2B2wuznVZxypZNwKxqzpDTR5kQ58FC2KZX6NkxF51I9Xi6D1LQ8fn6GJZi43IURohX%2BNIme7jwMcu9OXtUpZ10jwm8Z1OpUsMF1NxmO9C9gtMdn98VoeQnLL2AVCcbGizfE24SPoPdZ4IzooZaEfqkSEiMokEE1kYk%2BOwhtwbHGlBoh6NPphgQuNj9rmn6k0e%2F3hwmv8%2Blr4BmU%2BZ9n6Sy3Ip%2FODSKVRvWbtGST3zR7mNM%2B9M5vshLXvVP6AWl6PMH12lmxt27lNQjR0jvboMGrD2UMwH8oZOnV8qX9U%2FI63jMiDHLDIShX%2BAUCopJJuQ9oBHBUz05ZLvZXEWewHKj7NSFZuzD%2FrXwqFFSJGQ7lzgOhnbqc8lBTnCqb%2FKHC5w21GSn6nIvkqrZnBHSgKGRcFj%2FRAWgx30p5sCzDUuz4HivnQWlMVaMGw7d3iFUnmyHCGZ1ertM5FL88%2BgN0u2%2BCNk%2Bd30g78kfZlllVTBFx6TXnn%2FmIkiRFShsUN5XXQODRDGmCxt9MCy9Ugnfr1XSOOrVsJ%2BdonFPasQ8x4JZcuusgXJbAOF%2F5gopUdOIw9TVlb7GjoQQWvj4eME7LFdneFjQm2M0q7suuceFQWwc1tt%2FNTKRoPjI60E2ImtIW%2Blf2sBniFSC1dx%2BUfcKpJhxHMrVik2E9e%2Bx9%2BSJoHoXEq6s%2BN0f6urlXe9z%2FNrwj7Tq44QZOldexX1OJtWo7l8kAP8A5SOOZjeoeE%2FoHi8v6sBhhKatOatnrFJ4llza4bCjJrVTCWnfTn7JFYmWnkqLTYmNipNRhah%2F5QY2ePYJ%2BpJIS28rdHMyWJcyrwKnZNTIC6vWWX5kYYqtzfj1wB1dq6mMXnRZiDgvG9xzORXbxYEgopFz2m0EgVRIWDM7NemGIG866xo53QDyEiikzOIeparteyC%2BiQcuyKaf5vRWyOQIDG7%2FFt%2BoT8egJAM7X4DlU2tKSfdKO5fGRxyT5wC0YGMELymUmN%2FyQA3E5d39FlFlT1MATHMuAs0xW%2F8HcGI0OlHjNNN3Gcfxk%2FojuOCjzDM9vJ26lKeKSnTbmTHdgfPqx2%2BhEYjz09tsuWU4TyvKObc3SyiEAGXAZ9T1yOHZPBk%2FXjD35nK0a52qIJNpYiG4JMhHgK9OEliywdc1F4UAg1EQffgivc4P2b%2Fyjz2swGV5Oi18osXim4NyouACz23xzsd%2FSQNygxu7ykDeYjhjzJNiDVWs6y7Ipp%2Fm9FbI5AgMbv8W36hPx6AkAztfgOVTa0pJ90o5izk3SvOQ1vIqX%2F5NsM%2Bq38zBv%2FLM3EgRs6dE3k%2Fqrh4QK1AocJpNO1eMjF11HXLoTFu78%2FBAgiYQBNv068W6bu9dWR1ZnVrUbI45vzL3f7eSqbXHDeROwD5rkJYbBBRZmGdfjWkstT3DwhFfgFBH00BqkgK6hkjSzWoHNwdt%2FeyKqdpECsDkUa1F81mwtbqQSVUGBiKp2uno9Ht3YjylYRB5Odouaw0cfonz34ZBE0agq0r9YkrTVk19QFNOvrox2E23Eon%2F1NRxcrTFGd8phry5auLUdnU6F9k4vkU0Qia6jCVZIoVFUCY7QNfu3uU51kNBXaqLbiQHG0VET7ePPQ1KoM8oFXK4i0fgkUukNFUQlwtDkKuqdOH4DdcnOFZ1wfB%2FCZe%2Bz3hyCa81h4Kd6Vrb5hAzLwIC7v%2BuYyQxLo28hip1duzeJH9kVE%2BWOgEDJ0fJrOnuL9YiJL%2FlrZuq9BqiJ4QafM5q1xgjiTa2WShGlYQ6zTR4wdbDU%2Bfqhz1%2Fy5Z%2FsOhWR9yrqrA6k8MtyJ2TjsVYYKoplNPkTmM7fMLoAJp7rl0RlcVUMRArG7ZhRumb19FGIWpMbKBlKMxHyHvozJhT9q%2FROfaifzGve3JDHrafK9NWGvbZ%2Bijp2VMlrnv7xQk022SUGwX9qT0q%2BZiPnH5vE1JdI9FxiXKl8FQomhbVupBEzpDDzUbvWLLAps3BgzQEQBk9ik4yD1B65YG3PN2VoDQK4BiZB282UJFM0ISAwyspsACbImBkBmj5BRBtnJilkdhrM3KtpJ1KWgOs4sFmcKmUfKTUFCK9VrVihb8V63RMuOOUF%2Fjrx9%2BC2UMGqmVM3Nb9kcRDKmdIQYuzhgN19Q4W8EFYkX0tg2j4uhCcuMKuytZ5qsXRJNEP0r2smMMZI2K1TPAF5%2Fz6fgowUYzKnZ4H2YBE9EM7giNozJa0T8T12F3TRRJD%2Fzg96oNvggQZMlLd12qvIuE6%2FnblbTrLTj%2B6Daf1EQW%2F5Zce87ElErArWo13KEG2J9FkaILfS%2FSqggeE5QcoYusArP%2Br%2B3y08Wxkz4QVH7OBN00NlNplWJyxtPyZrwnw0LNkiWjtEMV62WEtqYyen1b8W4y%2FaSItMWSlrSknnvolxIulEIafRoTVjR2mSu7StNsehxaDEbTU34EHjOgAC4BTqJkhcO5ufUIpSMpJTZh0r%2B%2BpXfzmkT5ApisOwECy03SWR6NCqteuQ1uVTE6usdY8T7%2FEd2IIVL1deTp4D7RSGAIUnkzKWyAxuI0vuAYVGeiHsrP8%2FIruPMvnu7fSOIehm7%2FEd2IIVL1deTp4D7RSGAGOCrMKlnhvJk17xFWX%2F5HlluSjRaU3xgo7VfomIYkHYlWvGp4VSoHj6XmMBqxXy1nVqpYTTAwLvGVz2HwNNOewaSyKpM2qfcBXPLMf9zwaouFmd5%2B6inHat5C8nEwMsrjduHf1EiPWi6z9n4aA1wJWkyZNcKV2M5HpTGTTuKx0jsDY3ov87Qeo239JN2JbXg4ksmQiHZ4U1WZJYbbg80qfAwj44LnOhfhratA8kUrU8wSLAnM%2FJdo11eSNBO2eYpDkdWVhCGREQyOE949DVQJ6v7GThJB3O%2BcwNKjruyVnspnUWRuzRxIkpkzl88CO8vqEJqEgOsoo6mriuzMlj4NDufH9TncgTIf3%2BX6fyKIcXfeMTvhaigivWaYHIZ5LbhYYsw6%2BnvBhulVHPvUkLiKj%2B4fm1k2neImBaINu3BNOAZK2y003iF4In%2FQXtigsUQpHyvBkqaOSSLSQ2tcl9iRYT%2BkPQlCOSaDhIUWo9LbDV%2Fi8sJWDYcLxLVNhUD89YKg3khRZnvLmxLmSVa5NoUkyMrBhCBDJGEl%2BdQtsXZKLTYjYsn7ImMtWAwWWosPTwjGdz04E9oYxSaS0WeD8BNJzwQb4oZW62BYcKuYV4Dpr8fTWGvmw%2FPQF4VCSGsEdP0FuwkASAc6IFoELA30NdmeS0HZqiNmkM3Dr9EogD%2BEdc4uRI5Rtrpi2AQMUyf1gqkb3eccGYzQrlKMxYLD9d4%2FPXlZ5YxQELnvAV3DMDIIC5IOm2TbS12TG7M7AgrfZuCCJPDGR8hZxtMxLaCMCQFbX1rJeR0dPC7oH8ncCh9LeDQsnFtTlcA%2BFC9IhXiYWgUAFmGEvqziOK3db%2BDyaIODpOcR3d1hmlB5rjpM1vDIwH5jnJZfOot0lEAZOVIgWlA23dyyLoMICiazt2YF5%2FfcnF4RxzHtVyDG%2BwWuGZxGF1y401psFbcM4sl%2FNHVZo%2FBGoNSb0o58o6GMQ%2B2ck2oYGX%2FjQps67w0732L%2FGGNxdsBltWPMRrGNt2MtFF6SHDjAcBoFEzX0p8Ah9Sp5mPV4X4QmFXlKTd1adz4qKRyCLqzhHGVvqm2%2Bnn%2BHsyR4YLXQPAt7SZCq3hRDj%2BqD5IIlMvaWlw%2BRpDVFteQJHSiA8H859UysnX79alEbx4BQVuz15DaRICbUNvPQu4v79R%2BOWQI3%2F8vvnzoCH1jDlOSNfTJbywFbH8DDVEYTkxvzIP7VBEvxody524TufhWnXbq23GLT2xmKxU%2FEwJi6a%2F3B3MbJnXpHZmPd2oZJjTLYGeF63OIzLcIGIpGtrZkxCVWWLhukV8mOH1HfDfzBcDYq2KfuO7RMiN9Kdn97wid947BJMue3AJf2eLByJ1F4l3POq6v61XHvCv9nd4f2UtZjn8wpgQJr4vRP6kUa%2F7c53t8pXyNJy6VBvpbFqqfEq9mcWEi6ZcnmRyk8DHos%2FGc7WkwmoAxKU2O97if0oW13Tug0cdGnOJpg%2FkvtfxO2wk2Tqd8zvLgvbW7xc85eRxVZtzTmFkyT6Tkn81cKJ6wRhUXSmMiZGlx2ViJqLhS1TKl4Xd55R7OQLwDTovNUVY8NOcGg39JMlvOFxwcM99cht9B%2F5YQRUSXVW60lG9Rq1jOAem3tjxJREKrUiCcxFy6F%2FxIvORaYfqq35I%2BwFVPDE3U4Y0Lvv3WoRa36GazIAsuvqGNC7791qEWt%2BhmsyALLr6hjQu%2B%2FdahFrfoZrMgCy6%2BpEjSe9SzUwHVmUPkLzqpOhmgl6oqxhdM13pwK%2BXDrB43bO85LFrrVO1sB6NQHg2pftIOJ7EwDjsOCP5SNcYWCQSQBEwDcEz5gFFlx5StyedE4QHF6BPOQkWijHNFcMxQssaIFaV%2FYxH4BqOJFJEn7hvRMXbgjPo56ftI9ZrW5KfPd%2FMvAbttmjwJIJqHJyoHGNTULvThM%2BrYtxadCMFmxI0loXelZAXYKmGHVDueopYeHETXivB7Z4a5Z93C%2FsmPlWIdLQHa90XAFvNk%2Fa1fqffem6zPcQq%2FY2Lpm4yFWCwp2QAERkNtwpA2BUc4fHK85ghWlXLtq06XIhT5HoobkJTpQoPRK8NOt9AmtcOUzzemMKrEFsgiKfOfezMJqySMZT3GGpRpUEy3FhoS9borcgm9lyf%2BWr9YG%2BicuWOZUJQM3MaBPLWahsVHMC3kbWKLV1F5kj9wNaxFOwFawEkXzDRDW2suoYLhCLKJMTexR1wZ02JbJibTybA9ITzc6HQ8e9ijNTUNTEEeCEY9POKynUKnfKwLyOfAOZOen6Wp1MSFNZ5n%2Fo5mxpxY8IbSdyBwLk%2FoDXWCZoLunNiKEWPYc4fqla9YbpXCBKG3yzU87nvrNy%2FeBKfHLyfZMKfANRJV6JEUfEyTnH2W3w3g7gE4zMQvw5TGYHgGdqzfcjJpLIqoHiU5hoPRZWR2tjGDkezmCf8%2Flzk0weIx4scoYCVh9IZJ1S9RT5n7HLjVX8z6UWg%2FrqNwtSYl%2Bp6qrIQelfLynbje%2FcBLNs7zXa%2FL%2F9Qu9qWYnhr9w2l76gyRqm212e3jHxXtwh8KngtJKiZnGYK3UdfJxq2dphulx7g8T0hFuvQ92jJsu1h%2Bg1rM01CH4YSczkofftoeaWhvn7%2Fx4zJAVR7Ips5vlsl0rucaug5z0CNVy21KiCYSJJOmB%2FkxadJmYzfgS%2FyprDC%2FU7weOubZ5J3MMl7IEfALe1N%2BtAdsNeAAS4zUX5U1w9mNZGpGbgip3yZIVMIXH0G52iPkRfb0r0jfrMjsFzQSA4ou9fkgvY2y5RGPJBy43P%2FTs2SVufbWSYt4Zs08gD68z%2FKU8LCs88SlWwdUvto4k1aCzqFyPgcRX6Eho1WnDTT3bsIK7DP9dmTt3%2FaiAo2M1EeV70eI7CWwqhUx4seYPQbYB8%2BoVpDncTOifN02SEKumTOyIKFOESmydKEagtiT%2Fqo8J8PP3%2BFQb7d7AB7TXObKh5522LON4Kn%2FLP7cKgd8b71KllKjDaT34KHqGP9NnjeM9WEBhxIVsKepOTy5mqDdAgJKd6pcy7xSNNDgCFzyrIKAXXWRvIcl1dvvV2fRcyMuJn5fOhSmNF9D%2B874yIJmGAOmv%2FMxJ58qtPWT%2Fn9LY1VTfHvQDQgEbrSwQRmUs81xi3cZNisi5SJk%2FOdnJhitBt7eIbCmUBRp%2Bgcio1f9TiNizaqLsYdeBXQovus%2Fc5WrIYPuoSe%2F%2FEXa4j10O99Kkd0bDwcZArEO5c%2FMUvQHZ5IePmXmQ8iZw1TRkJ%2FM22solw8hIC%2BQPBXcnsAVyI1M%2FnyQUy%2FZwQtkjiYV%2FuZQpmr95JnVvVF7Sa334LGFjeBdvEY2Glphl1WiHD34WVYwHh1vxZvQ7Kqqtq%2Fx1SPWfDCpbrA8T0f1%2BjeQw1WK9IWkQEiF%2FP%2FqnSnEuwZ9%2FswCeNxqwEHT%2BQjXQS4QQ6wJXOVwBAJjBIZmDeEjht1yy5c%2FMwdsGzakTcJJyce7RnBuR2xMx%2Bsue1R5o3Tr9pXQauDGskmIVUdRbsZlDZtEAZUF3ViSMiKOYvYht8xTLXBNVyXIGTQwqMjOlWYBaEtVX2CWPTGcgRCGW8rUuBD7%2F22aggIuA5IcrZDqwj3WSDkPpwS%2FPAYJ6x5mdPGXt%2FTncG%2BOk151jo4iIxwoCyCIkr3yFoGjcJFL7j%2FmecC30mlLwvUisQLbTsQItpd2vUjZv8wQ6lOx0edGcRgsR33XnTZMUnarbsHI2IBvawYCd2s83UPYMzlyeVFpcc4duAL5mWJQputszvgQKz6S%2B5t3eRu8KCdcz7%2BJ5TqPhB0%2FCIXpj1VCSu4bhSeoSrPf63uFbOwvi4iITT%2FBVIc7SRjOVvhYAYBcc%2BYWuX%2BsxZ25Ba5dHIYBHhFd2jvQC9oBc1JobUxmSbDmnWr847nSs%2FMKmqHMkVw3GjLLt6TzxLtCeKHe8pzLYFydI%2F3pcy9heRuUvf8hAe7teNqx46F55dNtdMCmJW1%2FuBR%2BFq7pz7D7Mhd%2F58kseF174MlcdNx5OVj805TyKujac2ReCj9aLOPcESpbJyvcoMmeTHHKvBH%2FBhPMZ4i4jKicr6L%2FjvPcS8qNSW8R8GmKdL6NXGv8eosmqO2ASV4y5aojuro5Vv59jNPDkjGxn46yhNPjBKOuD0ck%2F81mL3nqHcqoTWH4aI%2F4hbrdGC4r%2FC3SGOIp%2BaC4GWvVHn9JGjekhD1JMCIOzAXxzugE1hvetQNIhWpKP4K2KhEH4uA01LO7ZA8X39Zu6gICvwSbtBgOIV6nRo49T6FaV58tPZjUSFX1hxxNqdhwEM6WEKvWDvRgg%2FlhOH0NtJ7gDkq1JX4NAXYJabrMctZcjxoq6TSNqa%2BXBdxFUffBNT9fRCcP%2FkvDX8%2BmDdeOPA%2B8YzmfE%2FNMWkLn2zf%2F6VflWLe6c2fvXVopZKZGk30nawajzjBcsCRi2xxMP3PSc%2FauB5Osusz6GQGdb0mR8pVyKarIrXhqvuABgk6tbdUrRp4lJtoboPPoW7EbxJttayx5MYAAsNWV1kIPCkhjRxTwYfWxFukHcAlbYw2w4CfrNBsvDlEA9ymkD6%2B0IzR12PYUW12j1ngDvJHmoqvZ%2Ba%2Bki416eQNHFJ1a%2BXYrTb9pT%2Br0DjK3cedZzYpnUs0gc7Z88DL8eZLSdvYO5HFW6s2OiZCHsGd%2BHhIEVBnBhr2OiPlyRoHZleD7w0Wr9qpFz2GaUZi52ZyaTAJbWGuv7RPJXoksryMmZ%2B2QDkjoulx7TLqDOsIXKdD4UaZSmcYyeMLAS%2BMCly0RsnjNVbQb047WC5HvXZEIoGGKCT1JRrn923LB%2FzNzf1qSUaI5vsIZ%2BK5PtSzMp4%2FnU3Prf4sTJg5Jsl8EDHyQ0QIGbO%2BmeOq7ocQ2DwUrmquXiZDad82HlKdDajBGKKKEFalUK2WTeAwC6EGsBf%2F4%2B9erkcENKfg4i69dqIGpWsybI0SrInuFumqpdxtvPbENXP%2B4UxVZMngteQ7zNabHhzSRJsglHSIzpEPR7UHvV7Luo4EkE2mEXLYTv10wq7QLV0g%2FqAfxSQ3vEcNlwkdAvTaUX0BfP%2BthdWXsklajz4uvAp%2Fg8YMuRrSsqQRxVCWZKwAJhyPT8epyA6sDNutuJ3m2m57jGfSoC5Y6h2ka%2B6h7nwLnQicL9TCZ7AKUdj%2B7WS6lUkJL5ONY9%2FWLQVNrmXfI1pwFrC3ca38uNsnle1DsAzvumUXZNYKxvai5wA44sV7c7F1PuRL1F%2BjPyOLTaNbpNdbsuPTDzivVEkXaDFRhALizKCSz6eQF9HKubytEeLLUTlM60%2FVUeSswsz0IcqKIKzOmLNLUbpuPf1gRK5SDdQxnPT96do1KnVI2NweBwJShWZbULeX5qk7Cb4%2Fd0mzvG5xks754P7cnf%2BAYdmCFiaOtDybfMGkIlrvZg2pZWIfzqQGlsR5JH1ee0TROxTbTU%2FdutsM%2B8OLTvgl5IW5F9QvIu3Xc8p6Qm%2FPX83PyW2wCg9auyKCD6xcF777EfoBgfMzf8A2qMyFG0g93whX3rBNgnXaFx8soEqZcNS2vlSebJRHh0BJysBPvRp7Dx5Lte7wzGGpLKPBXXSTBO2on%2B1xme8Os7foH0H3%2BPsQSusKttFEx5bWq5ma7flci3e8cA1P9IfPnHJwVcieQ9VursRNQiJl8ALLTkCHZon1TjbrOsHpdtLBjDLVukLYkYLf7ShD4KAft%2FbKiz2qMWuujVPxuhWe1ySgLE1hWajniBu8cTfGjMUev740Sc64HxNe3ry%2BCo%2BxZgGmliqZcGCSQkZGmFHRsenmISdhLct5bE4WMuUHigMEeqVAX%2FLCziJxI534bzilVnFCu68lL%2BoaX9ZLsV9sic%2BFAWSn80mU29Pxo43VTSS6eosnBe%2F3YlDeUwoa5kUVXA4IQnj34Jaj%2BHxvBYYdLzJk32ktd8dxfJWPetlJzyxNcNYD0SXFjz%2BhuXb17QM%2FJIZPSzkqvhTHGx3xqntZZqslWpNkZ2vhCY3Nphg41%2BWesCBYDcdaRj6SBw%2BkFhSnjdl4C3xZaMG%2BRsbdntH0ZivTaoPPskpsARlco6TPc%2FomjCFML2fms6c%2BkoIm4uTLMFsVpwf47kyo%2BvbtoQj3UvUcJag17K%2FAfyWXJ4vwmsxjT9Q5%2F0nKuIt3cybzpFHSeiWR5R%2BAX33r%2BQA9yChLtPrxNncayrssUIDVGN2ufD0lsyujauVQJVcNAmdBNhmSl4Zot2DIwojjXtNStnD5l%2BnVmvqfl5ql1kf32WsvOs8AvaCbpKPoiuqwHHxx0lKxcVRSzcn0eBHlPfwZVhIJ7LWGN0PV8oFDpsh3cVLIUqCpPT6eN1s413Y4Aau%2BBbmB%2F9nCcgt3lHFF0hzOa3BmhQpb1O2aI7Z8Ghoww9IGgSwvZ8ecHI5QU4gb9Sk3hTSFnxu4iFbebeBxQzgjFguKs4bbq8owI6OWFDJcvMpw73R9rXOP8Hjhz%2BjRcRspxTIbLm7P%2BnHxPoi2Ns6rDXLHYvNWSoFP9O6VErWOjva9%2BmppGVwSl3%2FjUQr%2FgVNebWNcwpgZAeJQVBa8MvQ9%2FKM2KUvB9%2FnAlrPZ19f%2F%2FasDt4yZ%2BjnoD49B6qWi2WXioDe%2FDqFhqVhSCtizKTJaqOHNBvVKfBwV7fgEOpKdXqxWg9cvKQS7M%2FYHe17EbZWdbytZoNbXxk4ZeiiHyK%2FHUAzCFa2Rx7CEeWnoBDmKCbBJGiCNbwNN7bPAlvP3JTKQEN6AejcpRY2Gf%2BoC0Z%2BzsimUO0vf8m6QAzCQChEMXR6GTzRVe2h4yM5BafQ%2BLvr5%2Bf0%2BJOEiu%2FQES0fagurQzyqOSsvz7TKzQ%2B2ZqA10f2uY6ZQ%2Fm9wFa%2BYjvOgQDqvQRmxF2b09lm5hD2vLev%2Bdz1zNFOFGtfBTGyYPHQeET0f7LwhQhPxgkUv%2B9RNsPmQ4HoPQQuiDPfksXph8mjR5jux6tM5myY3zZJg7fGYvZSAqXIlMDBnb%2BEZVZmVmSAy9UdLkV3dnhsrZ5rZLlJUOG3mxtEhWAryCPWA8fK7LrPti%2BCw5OyrxAVlf74t%2Fx3yMOCTWdi6k9OCLFzaQYbObdpCpUeMNWvwNvx8FFIKoXaVHCKYQYFVKKXxPzQ2wRCFEJ%2BfkDFIrsXMXpK7DJZuB5f4%2FbaijFOMItiJ5jhsplL2C23pequfSCzy2VO5fa2EDCWXDk69ztFaa%2BHclXB7Pz%2FQXWv%2BcOFOefseNAavFqCEAormDSaVVpv20v8l%2F5DO06wlrMmMDB88%2FJDTMe8Rn0YoVdVsp%2FSegLzl41n1SJLc0tb01Y%2BPOyC%2Byqs0FXvDy5U7KQ5eiV6prEny4j%2B6AcLBrUfEaCXulDabGjZZkXLlsp1f2Ly1I3I6f2Xb2LWkIQZ0K4g0QkprEZfgPZTx7Rc3PPY3d6m%2BqH1uUphmyFO05PdtLV%2BS0w468NvAXc1DCmSTKg1k5qMe3YmtYuZDev1rmn8jT6aXpd3WtPN4Zk590NU7uZyUL5MkBGrUYvW7M4qg9Cbhvn%2FvkCCIOwwqsQ%2FnyXW9ogE1ihRPtKCE42jv384u1RKjn1uzf2tSorZuDSX1%2FnafRM7mjIUl9%2F0S0Yswgh5AfUwpTi2%2Fs9PfbdTMy4fmARyQc%2BPf05c3xPK%2BbvMZSwqBJusjK47fGJVkDlmtN4qcQapqTEe%2B2spZphMOqcdrSlpNn1eaPaQLPE1nZ5oVVOzx1PQzgGxM03kZKsPiJ5SnrjcsUifAXgRhLAdvrUHd%2Bn2MklfiPuf4YS4bUBwBCMhvQ2s0Jq%2FMni9J2%2FBEhnXF1nQEZs%2FTacXnXSf1K1fFYkUFChUXIV5rbvrJlI9l%2Bxpy0WVyCri1kkRhuL2U9PZsncmMrj0dsa0BuMSNeyxtsJVCICPT2M93KVpSrXApjBT3ru3jgxfDfwNh3PU8ZbLhdm38ZL7%2FpCOopLpDlywxejZ90cjr6ExVJCubjsGILtiDAY%2BosxJWFq9QWG6Vu0%2BEIbMWeliMGVCaz17erWv%2BmFJ2a70efK4p4DV6PXTr4VO3Y08GxfaD4gIoYris6yeGY7%2B%2B08rfYSgtHxKTFNenF6kLqZdi%2FDwa6SzyPQU29fmkZHIRJ8fWCp6Pj%2BkcHy2kgM2L9ABlMJ6J%2BVjuBbse6MvlkQGv43Cuy7fVstXxs9CA28tjEDR7eLII2z3dsRQoPoZlCfDcV%2BKNWmJDt1z3%2BisNQS394aVry45JHoYr0uGWhHczGLy1NCcSgTI56FXiH%2B%2BFbS57SV74rh5ZcxWLlw5QmcNqyR4%2Fe%2FLQqOsWHK2D4fBTX5IrZLH5swKE1mFl%2FEksBZEhSYCC2saXZZieiMS%2BTZQ1fn2cQzJBdOIUOW4Us1%2FRdi2VNC3NulxiNQesf1QV0W1SHydlik3dZqLiJZjocJMzq1kMdLmfrFpS62IJWEZWC9Cu9Imo%2FvzcWH94rZexxWz6zliopgg5KqINifI4af8rbcnYfRlzINCB5bbtnUqIqh6Fd2SjVlx2FHBarlBcutE9EGWEyM1Uu62%2BBZr7tWgy2cSCscZSalg6ElqDgg1OE4iior3M1YDrHA9zVlRrcbvbdpS4QN0MccLl%2BllC4SAMeFD2SAKjaTzCcGm6B5R2KlCWeCHL1hlKtCgSFznHYZWLUvN3mIrJgOulSjHkZeyHWtUqO9yE6E7pa69oIu5%2FKU9Br2WuJ6OB3Ja%2B9z2r4JQwBi0BTPs6h5asXivPEmiUwxO79P18lLPrpjQtx62uCdNzkqcJ7RXKAt2iBov8kzx9oxVZIoJ9nTHM6BUgKTaAKj7dnTkXJ8DBy94ruo8eq0Q9COZFGf37rCLdlRfDVGasoRRohGdAFuVx0yEWUpQ%2FLHlff6Yvf2Xo1kdu0p9jS4kwqHqWvuJwI86HN%2FD5hXBG3unGvDnBEP35EoAEiSpDCDCTeFd2aZLlW171dTRR2jfG6nnd184ujt0%2BVuyTM4sotDwWaSCueTY13ljfuVrut6PAIX7CkGJjIuwIZe1Pe8%2BJQqhtRZo3slFuPeuMUy9b3%2FiR%2B2RNQvvPjOAqxMvoI%2BcEDGKj5C7Zh6wrZ4Cw7Z90tESoSuwoQioYH%2F%2FqHdFSjoWKaHq6xP6ScgmU%2BTvTofLURYRG6G2VwJFBIb2v7kEXq3ZhD1rmSBlgXXIT02vvQDJy38CUcr2lals8kNNInUrbiWpaDIL6ScC6zQHXn93UMgCRzppk%2BInMKxOPGoXMtYnanLT3pv7dMGVC5JrwrYU88YQURD4yz00W5FbLKlAfaMCJW8BfDU369HaUeeJde7A%2FEeQ4XEv9rpVMhR4OtEFEtUTMdCr59JA1GyrxyfaB5dgXQpHJswi%2BkjgLjms%2FqB6Ev8FZESNR1ZehJhX1M8HFpY3TdfmJctz8beu1Xf9vg2QX2C2K3dpohXuYVz8vu%2F43OI0Tqrcpu%2BmTXbICUpzKAuH9RsRN1DVDEf8charMVH13m6Yx1o2HQ5YmhEUge0lp%2BWDoaKUBOsY83wgGGkPivKpoThaCdvZt%2FYHJGKe8QBSzohF8g459X4O5Bfxr4OcE2qst4Z3qU77j8oQx1aC5m4FDvHBA2HcoDv7%2BcKXiIRLdS1NktS54%2FzUBG1eYwIHI9W78at75WYGp%2FkQNsToAdVyZ1xHKlzJQm7Ga%2Fk4lkXYXVXeFRDUs%2FCXi3F09cqiYoSp8FridMx%2FmpPQehkx9KVnDRzOkUsz54JQC%2Fai1jVeHjuwNjI77xUZ%2BN40UlyUnvzhOotDj6AvDp%2F2iK5NEFraW%2BH7G4s5s6e0VDaam1avA3mWkybeXNo6to3iqwozSrdbNs0I8PDnXWc4wLP8HC%2Fz48v5TWxvMfls4zhE0PcEwHSX3I8sit9KHjzg4DTYaEV9Y0mXwPoE8lRqampKStwcRA1A3DXjFjlxZNK0xV3XoXvh%2BA%2FQ4XgLAscclVLF4fq7s3akZIrHrEh1oSqfx8FvGALIjqNB7EtRPtt1sxf%2BeHuzK3IOfxRsqZ%2FwW64Imh7sHspWGSYPn6iS%2Bm8e7HPUIHFoEZiFwbPfH3fQThMOFx%2BHlgAK23n6V7QxQA2mDPdmgsbljHYM%2F%2BXfpV7EnpyIGg73o%2BGUOMGVpqUu5uGH9deuTa%2Fwh%2FrN279QUQ3BGSAWUnHyAkAu4vF82BtA75QoylBGe6cW2%2BDy%2FJqCYZeffodTwlFIU5sxs3juoNE36UtwYshfiR62mTXE%2BaGhE2WJ6Lyncx%2BRlgZOCrcyqsSpxuVaONH2Cyp8z6pYycCkQza1D2Yf45BVVks99SJkHWfbXvhLz2Pb2VDuBWnextXTDNMMOlw7jDB4NNn8cLDotXaH7ydEd1epOWAWKNJBSjscZwGMzZNg5A%2FpQplzVVwU%2FwEU%2B5qKjwShVsYux%2Bg3ZOaCb%2FVyJCMxK0I66enVb6hONTBK5p3mr%2FKeBew2xZFqnsFwCPekiONQonPpzVfUosYFxMaVpnjxbVFoZ09Eg8gb3YRic9j4HVkNKbxJPfhF0fke8kAINdCkpd7pNyP8%2B3KD5FO4YliChPkP4ktz5GN5btIiUKgU%2FvCn%2BsS7X%2BFDLYMY720A9ZmATxN6Bl3%2F8yq%2BUHpALx%2FAcDSdIX%2FjQbQwXPcLH8PwvwSTHeqqigh8Stmcvw8ydiZFybvjTcuZav88qmRe2VAWHo7ZtMjSboPkx6VUEo0TLnDwIzvCMJylkCBMA2zZt%2Bk%2Bcyly9IlwjWDJeT4SuDefitHmzEYXSTL%2FIQf%2FTagrrWLUelMtBjii5aBMcS5CY22pCmTs2tdoK4tc2HAJV%2FLlEW%2FNqS2nF510n9StXxWJFBQoVFyKcMubwCRJsod5NcY7iImVBkCGW%2FJGNhvlSsPNMPx1tcZuPQ3B2LpHlfWwicaogJFH3WNBLl%2B8Ezy4wPoWrGNhj2e2%2BACcYQ5jQ4JMDmHbfzvZcPyAlmNcanWvFafGDm64TevpoHcBJTPhBtaA%2BUMsrG%2BvS6fm9H2k5CNaTZ%2FQ3m2NlAk3cyOKVaIorBuVj8MjMMHE3A69LFHHe0lNL%2BR%2BIAe6j0Ma6pwtgZyX457pGiBuhh5T3%2FRS2dX4oKyrk46jfMMQ3w5AqtzJO3eAVEZHVJh1Tx2Ji%2BEn%2BbzZ1cYCm5wRgW05PccO9kdibWeFVDdMQTlLfd8TLNgddKpUhE6kqmOEye0xij4nafDERCRcRzwgQVojhizofqnVr%2FfhP5%2F3j0qzIKlBiNmSArWE9RsmpInHZxCh4IB93wZvHSQ91kBGj6w1o7TE5FD9JfEDENCp9OZ2ULiYisX1bgDl%2F9XGFg0TQdH6%2BVv%2BemEmb6VfplqhNebYk3OldQT11Y9UbJ9%2BFFU8Qj%2BcsvyKGp4u3HgN%2Bi3FJJq0%2F70N3PoiCiYuBVKobIHvydy5ZM7NQU%2FGangWQa2BhxfL4qQGr%2BuSyjE2bUb%2F4Yxgxo5wgGtqVohNMUqlxerXriXl0SxHcrGfovT75XuDQhZdH5XzO2haNqC7xyyzR%2Bor38CdLMKFvPrMrItATk4SGqTFb%2F0ZbJdDdZx5cA82AQzlpO0H%2BsollhG0ZmQbfk6hbEnbt9IiNr%2FpUxqzTukpDO%2FHZgoHrNBOZRBNrSceZj5c8NxQyP1%2BdqthTRCmUfDp1QWtRZBXBI6UXU9bw9oWbOb7%2BP4PjYCXGkwwwj4%2BlH6dDS12EqpuPiMUZcBhVxRTjWNqgZxWTO4tz5jNuNrQ6EouZ7kYzKjLOSDZm0g%2B%2BGDtrKjjfnTWOp7Dr596nmt4N2tU1offBVbX5C2o46R77XUXeYjlPA8olqLfANCgSIdqVJMLSG2%2FR4g3AO7C8YqavDQufd%2BRbD2QfnR7TCG11qOAUOEpfYNNuFy%2Brsa4Ur273oZQ2shTCFL1mnXaLlUm6RAYBiNBuzq%2Bm6JsrbZqde%2FGl%2BO0sI7%2BoJbfDWMWi5JKpUQ1eF16BIXTb7ekSjuP7tKAFUpSc%2FrMHD%2FsZhyNpc6J%2FFGV4MbiHDTUbDQ9VbuaxNwgebenMmY%2BnhP%2FHcTLyPIetja2F2QdEFlY4qD0Jd54AChcHcoq8Z7Xoo5RTY6KOKgd%2Fem34SuoU9n5lZtWA%2BFB8RH3w2QUKRkoWhOCglGPxRt6gDpFsyy74tnwxYPJ1e6ZrogYBdSNCozxoPy1fuvJHSBY09lKILQmtKuVCCSHnbHsynClFP2X4ZDomDnkhwmN8xqR7TMwSMQWqouMPhSzXCQl6D8GA01SZWw1uTdexN5S6L2RO4vaTU%2BCU7SoKE8jEi4E66jFZURAEMUC2EllU1sPZaetu5z29CSODyer7yvJ%2BGOEa2jgI6aIuufjnz3LM6gYtetzTceEr8Z38etdnN3KloPy13ZdV2Dyl6CIibG9Qspqt3yos5pHfkKOOY7quESnvA6Fdgq0zI8T58%2Bi2WU04YrmCTM8zWd61WYpE03HZzdI7cNPDWMWi5JKpUQ1eF16BIXTYyOy9hGwHSJQYVCAsTdrTqg%2BbGyEAo%2B0AppY7Qjvelv%2FIT0Q2W77SgNHCWTlXhkBOUgpFe9IL0q5ogf0NCYL%2FPi8ONs0EmypBmOl9JJ%2FvinrLXcm3K69ftLQt20pqm96ZbHlGJWvr43tJI0NMpQs%2F0Px9wNy%2Ba%2BRjDibsKtjORCWko%2BHu1WL1YMdpfCbIrcA2NUPYkFiCCdZmlR3bVN6neetFKcC0C2rY0Xko1QylygZVepUB9Y3mmxPwaLCxWZ3GYkfx0oD6y4Z7nsXi46iVJmvs%2B8HEg9vu0%2FNoqqwlz1jbISFU4qx3La9jady5PDJ7oji0Y2c%2FJ5%2BHV%2BzpNLedsGZ0rfPzbndj3FWMGthIUO4JIHp1iSVEZsGNi0xRi2p9cUWaUjxVrAMJmqyw9%2B7XSW52WnyE4O71TikrHzUXlwSYeGg1sIdNAk605BuWagzHRPWeq20keN0FIGiXtOtJATYFdZRjrDUF9AJt6A%2BSjuNuSpW57Ws97toI8X0sO0yejsjZ7CDfjWeZqGimMm%2BscfBzUgZrhmZkGhWLOCLVee9ripeFyr3ODvY3Pz5dScZd8AxFw1cvCN9r%2FqwyIqgVSk28qjzaWGemtDarYYke73pdYn2NY6fwN6ftDfQd27lOuTSrCMiAIzPbMJHw%2FMWgWRypKmr%2BmUpEIcl86rr%2FzaqvCp%2FNdb3XIZBf1jsEBprnvamypmkI4LfJ0Eh6u%2FS79zVP75yQ92zlMW%2FHd%2F8N7ffU6t2Gg98lGxbHXd8vLWzmyLjTd4onGReAD%2FYpARdyaM%2FMjvlaj%2BGGwO8QYnvvz3FHlUlyOqsF8d5wg9oJAc7iSg3PteN5Sg9chyjJWZZGXJfEB4Nps1LrI67WilqgNvzXeNDLJIWqraYHierpruKtoCXTJXP5DyqCLRoHF8eZi63Nsx8FUgMszj7n3Otg110IBxWv%2FI88VjNN0%2BUhMpSN1sRG2KYW29ENVwLSiqhQ8ijKT0%2BhdCp9DprSELAc%2FfLU8i9fu2N1i5MSty696fflDF8cDmoVVd6EkvUR%2FwJWjT6lauoe1zQhclPgvZqCGtxypDrvMbdRlyRO%2FoI8T1T%2FbsxFR6YaHjQRji%2Ftt1IK1VDH2YFdqZyfSosKsCn5Uu8vw3cCJEGpjSSDEpc95riBgGG8sEkwD6sCH2BkvX0QZglC38Fb%2BcW4vH1LsBHmGQATsXt86rsvpLrSx6cXbXLRDHrMDqyoRl02nitxlu5WV%2BkhyJtR7dd8pL%2FZ28UbkCh%2Fk0%2FfxcSd8W1qUdTIeCK7%2BY7g16U%2Baq49rwDpyoZtX2oSWgLcZgYnyz5kKmH1JXQNRFKaWI2d0llx7mbw4brAb7TzaWFqWOJWnKj5a1%2FPbXYd96v7vctprPtnY4G1rWxwM5x4YDnKLdWs1Jifw1mzxpUrcfcCGtgwCF7HqsZ4amvAXeN30I1jQxzno2j6acNRZIOUVkyaOOLsLzO0ccrrSDzC6ExMRCcHtVRxoJ9WKjF9HpLiI4rc3chPBItxWCSmFM%2BB%2B7aWg1Kzea4H6vwfIngIPaWpzVwvMLdoVcQ4%2B2OlxyOHpmmM9Q2ob7bOmgCsWGDpfoeTQeFNOMMH7awt4JNGkXAAdWdTwuXYJj5sOjHxzl8Vd4MqcXXsWYEaByw9W0lr2Lwko%2B6MjWs1x2EUqzoQa7sq1VipRj8tMls%2FGZ4V4H0KA7LR9%2B4QHX9ylNUV7pcWMWrb40uKAD8XaB8O5q7Es0mzktMcQKO0yQqKOdWcjm4%2BvxZHjorC%2B%2F1k19z%2BrH28dUWrAA7G2zZstrfTKRyMKRx3yOto61X4GWgNTMHmR%2BqYWPdio379FsXHxvefG48ZFbFauJ1Uz%2BjbAAjG5gqXsVMZ2KTRuaHsC2Wou%2FEyxXVms0a5U82qzJkGsTFx5xNXxwWwXfvmb22pRl%2Bu%2FtZ9lsJ%2BIsx2BiR9%2FhVijr9OrPvjRGUTGLFpVFLeHDJnlbjIDbGDICh9SOOUHWXsQQqAd95aE5RAZ%2BwiQ2tN5gxXPu9kJ9rZvWM7zzScSBCgD9K4Lgu1DzQzYrfu4QCnA1Q8HZXSkbJG3%2FPfQqiD87x%2FiDL9brkUcgtm6FxDf0hI6nlZWhooUop1t2SvZoMG%2F7VpXVXQh4PxB5gHg8pRfJwnehfcA77Tp5UipKBjHw4P4mtDFBFr1Ohle7ihS2b04%2FXE9R5X6mZfvqG5uZ80utoXWzAv6kAu3Odw5q9u%2BBHKZ%2FigDtDCQUPuONwrr1Oq7qUVa8oG2Z09VFty1fOeHcY1ImGIO%2Fmqxt7OD4nTjoC4npyICRfybGWq%2BRKh8jBNi7dPJ024UCJIJzCEnvWiQJ0Lw0NniXPJrOtxlFJE97hmF4iurbihbTQORV19Qd8MzUAhwStVAD7rtZ%2FB9JXEnbqpOBQzKajHEZfDP%2BvgkQGTHKcg6oJvjP%2FUKa9WIaHPhSvKm6Qa1fNle%2BfyyZRXNY7ZcrEVkmvKysPZofYlLeljNWyxfnm4AerGjMGsNx6avbL7Eeiz2tt3C0ZcCJTUU2JMw%2Bz6I6IGdvlrcFEMlze1rokfI0jhBqbBjLm8Xkw4li19CJwUWNoNdHbrIkh1h7MF4Gf7NN7X%2B1pq7FgCtHxQCs5d2GL9NGc%2BP1Ke9xpETnQuzqctHbQpdYq7EmLOk0gpvE0YCcW286JcYSUFLo8%2FKHe3HpxLzEbixufq7Bae3vDVjU2mpMV4FL19cHInK1ErPbn18UU4Zrn91%2FODWLmbs%2F3Top9ZT1Kpr2R7thtMl965b64%2FdIrJMVcPXSnZGxKrYUnELhhzZ2UnW7UzalEvLbioVb8upmqv%2FWX5oO0x7ryt6WBOqFCcA067hskd%2Bv3xeEC0nSILimmsoykanatPAXs%2BXi%2FAi7tVzdPyK5gpSPHIbQ5NC6H%2BmnNHex%2F54HPyL3g06r21QfuQv1Y4Znu3A8Fhgbpf1%2FFvETI8uudoM7jA1a2pisDUQ5vxPBN8PfuB9hDw3ziJKYKIexETy6vch9CoshPJdQwxww3Ce4lFQFjuZ%2FcOaOS%2B3G5u1fdlHGV7PQ%2BhreK27Y2Fq90qopQlpyQYP0ZHVOMT4uGwHfP%2BdQ%2F8vT%2BeVrj2D4n2JsTjaDmO8B6e5g8F7SUNkZID3sXbrpTSBZPUx6CMh4rJBtPdAZaMie8DHQj%2FMmWQRbeuITj6b%2FtH9AWpVwKFIl%2F9G0K%2Bm2RZPFL6cRg%2FUU5q4D2AAv10A1EdBZpAFaJY2%2F%2By1elM6%2B1mAgwaSdkMZVXLtwLLxi45pXy%2BVxKLxO%2F5EzHebn4yeTPAgvAECt6KVL2FjDG9M0XvrWA74g6tBxcBHWnO3ci6MlzogXsWy1BVR8b3MrlOr8bgkI%2BO7%2B%2B5xl%2FDukFcqfMZO4pEQwdJV9sDzrKhUAoyeN2aZNV%2BDcs7A2xnClke%2BlVB6ov3tKWaFcybjvQXoLy4%2F9b%2FKkjdjOj8gSn2yVZg1XsuTdcxcsTx%2B9ttDub4uae4eS6ryV4wRHebbeK%2BTy8kdQX6blJMH6hTqfXfJG9RqiBAXm59mjNevoVBTpIObz7NqkC%2FguPraxzRC7jFx3ywKT0mpztg3t%2B7iYlFwECnBE9Yf4MyN%2FfkDfogrVlBB9eSMX%2Baon0x4zM9rCpfS1fn7B72V0r6AgAZq5XSV8zFFhr9EjXC8TpHCJtWEr9F2kwJF6zboydknqLi74xsAOcqZ1T%2F3z72cxpkhL%2FLLSJ%2FW2Lps%2FQ7k0TgcRq2pUw0SSi51eeZWfWm9XdkpGp4ROmtiEbtAZtKggT4TlAXWNhm70cOdS8DtyInV52f4Jw8foTMIKcuVxbVfrwHFGv5TXtY%2B9JX1bhAlkNT6u7g1dseDQBqEvRWT2s7zQR9qtPBJ1JTlBXtMY%2BNPdKI7RHFfZhPrsHFAYgSCJWKocN0GCZIM6y5Uu24oVADMVv88n2o7mFAiY241m6s0kcUGbYqJvOMKE2%2FmrXhSpuDMF5dkxJA20sr8nvBo3jW%2FpL5h5PHynzjejnozFci0WU8V%2BjM3iQ7UBk5UA0Ob9zIsl8bFPq%2F4Iu8Bjs8q8jsVgvwyqLVUnRQKUSy1WZ0lUkX5PCQzX5cA%2BLlIvu1YAKZCfImJKwLq7oj%2FkgJxfhwEMwBTJxLON4jWXCg5ktUU54o2xe9GzW6O24hV38SgsfjHRq6hVqiaEvtJxt7lPfIw0NP4Kbpveh2dZDfg9cmv4hTiOIQIMDDaLQGBdBlO0jUgkOk07ZID5QAdUN8Xco2cjhHfVX84%2FUUJMSRqBLIj07Ekypaj7IWVP5Prq3O6U1aQvTl75sypJ47EglUR9yT4gLxa4nzQE0WcmvueuczZhr%2Fa2dCabzDQo5TmOsi2NycD2n6GYbj3tYqcwadIYbNhU7%2B%2BURU%2BRTXbz0puS%2FiRSMN447FGkPJXw0daeIw2mi5pBHCSD32ziRyXv4gUmAHi3BMkNA6xlNSFOxrG1ZX1Itj1azvqmA%2Bmc2%2FPvEYfQCyg9tKL%2BU4xqJl3QxAfNalTOSipzNzxG7tnRsr3sy4Of05%2FHQDVNoPNycQF2Gb3JCG4ywTgAUYPvTbSKQ8B7gTQGz32%2BGidupwcaHngMiJLy8wUrHCYeKqkhXO%2BaEv3gUMCOdjRGolaipy%2Fiqtbxp5ML83%2FKlkcN%2FXZ2aM39vILmOZsB5PfA9C77uK8jNcgfclIDfQkjGTPJ0KaCq%2BHUOHlQ23W0g%2BJHNHNw6hECxzwTB8U51ZfK7UtBxJZ572bleRVwLA21YXPfpO6VvK%2F2oY4DogIqJ8hohemVdEg2aSs2gdjZxoXHF60vzzxkSGchrUZjiky9JSMPcm0Mxuj8hy8Ac3xfZhVcemfFYTd3T2mPyygolVfcg2UHNAA6mLsCIvp0%2BAWWjiLix1nS%2FdqvSUKk6jegwyPEoefA6tPmC60aW4hDVIWXmB8n3dhO3kAa%2BsqPHuwjzllQ6ypJad6nXUv5aaLOueZ8wj9NftyYIQSm%2F5GrRx767PGHUXE7i71OvaoCPn7JN%2F0foZNHxpVNZgeDGB4w2xj6RGNsQVV3OTb%2Fqd8EJyyDXEIAMSsOeh%2Fz0FlAAvff14vPvJKDhRaAPTEttCmjdIk17aFrPSbxsmuEp0Dy6se1TPVV8lSJgNcfFesChhaM0KnQYlAy%2BCL5vHaWjEW6omY%2FWu2d%2F%2B4UrXWkD3VVOd3v9ru%2BlL06oBjAq27Jl%2FxkbxURivl%2FAjQiPDrljyqzoeGRamr4xfUrZRTf8ojFpHblmOB3KAXv%2BSpdbK8Yl2Aemx%2FBOYizPGXjyM7yuT8WVWQja0JxCAIr5zeMJ25fxcWfNtzjCDAMcennw94q9Q0qzPxG9dHl8sK72Dk1VoUYG6%2BmUr0Jt8497rMNQB5v%2BLAqcXWxcoNTxTUDEN6a300Ut4MgJQRF6bujbCuBj6i%2B%2Fm0zoevVO9LmHRWMRsP1LQsnW5p1nK1bItGqDYvj2Thdgk7PGJtqh7bWrLFC%2FxtcAhZPLqGvtoIU%2B%2FbmK51j5bkDCIcUknx8oo0bIQ%2BKJ656bResjFz150jyikgVHr7%2BOrKEAvM4an1bPZgRK3qDm0WNBCgsxKTWdSwLERHFFAeyLquIz0z7AsadlluISdlnZmpMHLqtCmle3tT%2BTA4cnSTZ3pDJokzpxEwPixCLCwbwicYQWv7NGZ7msAlBniO6%2F%2FdWPotNajOsXAaRtDxM9AFPwAZ7acew%2Fn7CPgXnM4Zz1OUo7cVXB2YZeXxMy%2FML84lSEQcMUSKxM6foD%2BxOPaOba5mN0sKF27iT0ZL6lQFrNHCvg0XuLS6f8IHq40dyq2%2FyDo5FKofDkdpKpnVxvP2L15dOIf0sEIKRlm7q6snDEiCpyvlkRfa%2BbC%2FII5MBS2wcpQn%2B9ep1SN%2F%2FyaQ8rkH2hp7g0kzG%2BkBUOSbPJedMagC0P6%2Bqnn9vffNMMT13NvBY%2FsRX0H7E7THIy9ggu0wLG5YJhpMuyOLz%2FoMDaZDGJaUiCQJpa32YFVp6eap86Brk0ExMFBPHhIG2hM9ncQkxG3RMxsIAupcZp3LODWka7tHM5ijSjuWcOwKuRPi5%2BpP8XKmxZcVhW1%2FDCd%2F%2FY2U0OyOIkP%2BtSGQ2tX5iOPV4XNz1CHzeP3Ke4TCb4tLSCqeoFNLfXyi2FfjRTtUdmNlVH1AH37VkkDZ2cFHdIWeDarKUqQZIUet1xJVpvIcjJqBTkyBXupo4gooGutx398WegHVL4ZCL45%2FmngVtoGh5YbfPvLEcG6FE8UXexvSqT1At0uTLXllMBOX28jJlQTlBPFJbiO4o3L%2BXPY%2FWLGYldvi16ELJ3oBZSf3GeX%2B5Ff8yNYyuBtpALyqTxy57Gw36biu2JV9TGDBKdCvXi%2Bk9A2FZB6ll4NrgMZxYEkKSv4B7BmhVyeuD%2FCSMtTOPHIQ3iEOH5yTKrjMnY%2Bd4NvHBxGavS90%2F3Jy3%2BsytUxggLBZyh8SRy9ie1sBW9LvUq3fKWMIcdYzlKSpGPDalIzGip00TpeOyH0fovK23eyuPqaX44yWjl3oXtdqwkN0SnLJj8qJjvDFLCBlp%2FBGxQ7Cv05iCU5J9dPhbLliP5%2FClXJ4Zl4kUTR0LpFH2LgpkCm8W%2BCkO%2FVLm8RNCnp%2Fc8pc1NF%2F%2BWI0y6YG043YGhPF0uSAJEtnB8PeCmCw%2FfxmmtF7iSSvOkgfQOxJSiBuoGsaoOJvj3yhMs9DeAOz7JhcgE3cZx%2BdW8srrvqgVFXx2MBG1vhKGbY15oCCzF43BaeXDpQOHf3%2B5h9jja9ptX%2By81PLiqI6bGOlQTtmZhmPxbBnHZtmlfqw76Csafde5GaRD9D2bv15tIezaE7n52h7QBLGccFxASMREQxgoBa74VqprodmGAydcK1NOpds8KI3wEyiDWxJApDYN0lG5z%2BTa0wgq0QevUNTJCDuhSbwQFF1OcDjhpEMDpqw1L92whfGYbbHO3kNY%2BfueO21xW1qQVjf9A%2BYNESlQMlnIKf2HYvTB0WhrphN82bzk%2F9SAs1U2owueMU9%2BdXuqGBv2WJ9G%2FAJbMrdw7geKga%2BusEe3PBN8DdPWUoYOtfw%2Fxp14dlyANeV4L81M2JzcVTOYbO%2Fq5RqCnoEtWIWp9xuumL6UN0JintRm30MRywDtD5tr4pgRMblcNFj8QkIJAQbASK51dy62g0ZHVpLKZL3mrkjruy9VJFED0E2OUwh2OZjK429hzqU7bZVgGrU0zl9vSxeRzjEiPtFYqOqLSdkmSjXeeTP7FOYnMq3YeH%2BhR%2Fsn3SdTyeoX5vhtZ53E0xiIW1a%2BtAeZjqU9vMM%2BM6J9Mh4fP%2F0gpBehEKINtsskFBlQ2zGJVg6sTA7igLZn2SMH6SbE96q63NnkxXCdTqyJWu9%2FUVb5GF9iXS1t%2F4LBq2oNumDCBU%2BMH3ND3PekaQVbd1xEcl8OGxNU9F9YXg6Na0S7UYCANCzVymko%2F1xz8trhH2tuR39wjHHvivctP49smonHAOfQrKa6%2BuV11xE%2BZ%2Bl%2FdXzKrTkFIpZLAqqEPEbea3KJdAPSszeRoSgSnB6lblfMLwCusPduIICE8MhBpftXMkg2bwiprpE%2FmDPEiMzY9RP5MVMne3K%2FhjKV73qznCWAHqGXMEKIp2GubY%2FQ1%2BKShnwBUeCwZbalPp2oyGvxilOfGx3SPgujH9MOgk1GxUitVBzZYjkEpxW6%2FOwhi4Gbp%2F%2Bvce6wNw4WIYU%2BaanMwLHGp3jr%2BW%2FKU7rsVoxqZvXHMKsj8FyVefwvHMvSEIEzwZghqPuTcvv7IvLyY9%2Fcqci5rV3Jfq10zi0%2FmztddwYmbdnBTXuK7r71R5uixJ%2BZ326KRozxoryGz%2FARGvmH65%2BuZKirKNmu2%2BUMcSvV2yUVQaQmBRkyx5IedO%2BOZknKCbIFJaYuTcNDCAidpP1iaTAOhTRMc%2F1jRZAeIRVMgnQOgSCWhtuOYcfx08yY%2Fe29vLjm8LHxA1J7ywIaqbQCANVxRmnWDnjfYBnAr6l3Ad%2BwHj8vNCEwZdNf231Hp7g%2BFC7EF4nKtafG%2FCJM3vU8V0OjC1w8elSd9ObuUy%2BLOvaqdQkGoIHyJfNbgfrF2ousiz7%2B2lA9Rf%2B83ZCtjY%2F1%2BP57%2BUus%2F05dP%2FcGeV5PITaJ6%2FI8kC9PhKKQGsKr7y8czR4H6LyjfsMeag9oWVe5LV9RN48IFUPnIlhXENIFURLJI41%2FxDW2C91sFzrTsGiKwuN2MgIHGtTY5rfDRKhwHHspoXNtpkhr4FrzCtsUMoc1J58OhnVR%2FFaZmrdRMOORJ%2Fx6gIm%2Buqb2%2FC%2BtEHF4VLo4SBbo%2F4ikLvWjgTdIqEixCwIH41m2TLjJkNRoBNB%2F%2BeknIYO7DAxhUcBKFoYok5YvtSSvN39%2B7oXmBWbbq1Rw0Ge%2B8XSLLLORTJRUy5Wd%2FnGGwGeetxPIqtonMP8%2FOSJPs3E9zeImDjLtWnwQK3sJYtguF7fFetp2wm9Ay2t7iWKAe95vDrPMwfXkHUQbuDAtiQViNi%2BXgTnNSNTuHkIoyCn7uRpZUOfAauYtGccAtPXUoJEcL61BZfPvJPEgqghqvCmEK%2BDNrSbe1S9tdWYd0qm0ajVojKjrxg2JKMiK3ePj2j40A7og9W1DkoTTnXZLiQz%2BsPWsTNlwdVcAbGyz0irtKwMWu2mp9KVnFW8%2BDzg1xJFvUbo%2FMiqJmBzPb6WiaE0Jf2%2F1p2lodD7n7OMaVuVZMeYzdPLh9lcaa48LuzeHkz%2FkeaMQl5dWwEhPL%2BqLKfzztLvzBm2pMeDEanSWPCPAjlqmtDihHx1KQ8XJDiugQ102LzpNMsH4vNZMu5Pep4UwVUQBCZzeIArclgr68KitI%2B0%2BulSoXvBGElbvVoSYaT0aQ5EGdMCO9mrRhPjbmZFZLR%2FW3XQM2x5u0U%2BqgJhhdfhmK5tPPZwAcIhq%2B10gP8w1rB3KoSdrDtKKNIomBrwg%2BeoOnWMKwFztWlA7%2Fc9%2FQbFgvTcPCFHTRDX3ehHqhCZ3JqgbHW7xs4ELPgyZT3WN0sSuUwgxKIYL10X%2Ffc92w9RwB4d%2Bv1U1a6dfCGaWCgrplBQeezDvCiOfXKlb1gNHOtfjnUW6Ss2QLf0GiiECQCFkZ%2F%2Bc2A28QmyF0Deou9df%2Fj5IoP9oARTm5fbYckWG6s1h0dto33y3SUo0XDfQB3V1lNwWOq1OYmWf5f%2FTITjGunO6NBe7MrDOLu4wj8XI7FbHA5YbDSNeyp1NYb6I%2BbGdT3kHkrrd7lVo%2F4ne3Lm7bwFpYs1955YJq6XlZw85bKdOu4rUpom8ke%2BTeV7Fb0GR%2FE4qG6xFw5KxXKi814nKfGWo1Cxz6Vifw7K%2FrdEDIyQwzD7LDDxKJpzLRIgBPZ3IMoQi%2BTPJo0q";
//        params+="&sign=6FB8BFBAC666F59923FBDE92F3E9E9C4B2851748FED23DB60784FFCC7121814D462AA263BDE090DA7F28321671C79CF579370F6CFFB05BA128477F305C2F9D34";
//        String result=sendRequestAboutImng(head_url,params);
//        System.out.println(result);

//        String encrypted = "YXY999mXfRlDTmF290YBSAMdUfzL3/rpOsA6zuTQtLlq62y72/GD+b5FlT/ATOAR2HAJWa";
//        String key1 = "7fIh6MNcDm3X5v8X6aYz4wm7"; // 密钥
//        String key2="jU8mCVQgm9Rh2lKLMU00rCjq";
//        String decrypted = decrypt3DES(encrypted.substring(6), key2);
//        System.out.println("第一次解密结果: " + decrypted);
//        String result=decrypt3DES(decrypted.split("@")[0], key1);
//        System.out.println("第二次解密结果: " + result);

//        parseDeptName("/2018级/信息工程学院/软件1班/软件工程");


// 使用SimpleDateFormat解析日期字符串
//        String dateStr = "20250402";
//        String nextDay = String.format("%d", Long.parseLong(dateStr) + 1);
//        System.out.println("下一天是: " + nextDay);


//        getimg();  //获取刷脸照片
//        testPay300("0.01");

//        getDayOfWeek();
//
//        yxy967();
//        timelimit();
//
        //将加密串解密
//        String strKey = "VEwZ2qittjKn7NBMEwhzp1RMGdqorbYy";   //一卡通密钥
//        String param="aoTGXQ23dLH2%2CAqt1ujbnCn7lyEIiwRMtcokakfi336Pu2Q272YZyZwZFCqdi3P5tBBDvg5M3skN%0D%0AxMd1Fzif5Jkw4eFr29kH9cTKDz%2FXiSaqzZTML2JNtHmZPSy1i0RggmPysVLFbIxLjiXZ%2F1pjEygI%0D%0AmovGAwcQN1jYh2POHyWS8%2F7ReL9T3hQurbID%2Ck1pVb7MzSoWDZdP9zU3AWB6iRhKo%2CWEA%2CSsPAqh%0D%0AVolO6u3l%2ChbN8XDr6%2F27fAJFj3N5IHedy%2FlzRR83CcQb0mMAEl2gAz3sAm3wpxOvCZ98Pj8AeL2x%0D%0AZH2lory%2CqSPFCva%2F5foWzfFw6%2CvGfUQv%2CCgNDISYU3odVQxB";
//        decodeParam(strKey,param);
//        decodeParamJiaMi(strKey,param);//解密(不需要截取后30位)


//
//        TestLogin();
//

//        String str1=unescape("%u8c22%u5c0f%u91d1");
//        System.out.println("ESCAPE第一次解码为："+str1);
//        String str2=unescape(str1);
//        System.out.println("ESCAPE第二次解码为："+str2);
//
//        System.out.println("ESCAPE第三次解码为："+unescape(str2));

//        //校验时间格式是否正确
//        System.out.println("结果1"+isValidDate("2024-06-06 12:12","yyyy-MM-dd"));
//        System.out.println("结果2"+isValidDate("2024-06-06 12:12:12","yyyy-MM-dd HH:mm:ss"));
//        if(!isValidDate("2024-06-06 45","yyyy-MM-dd") || !isValidDate("2024-06-07","yyyy-MM-dd")){
//            System.out.println("时间格式校验错误");
//        }


    }
    public static void YXDL03() throws Exception{
        String head="https://app.xiaoyuan.ccb.com/LHECISM/CCBYXLgServiceReqServlet?APPID=102030&CHARSET=utf-8&ccbParam=";
        String ccbparam= "BRANCHID=441000000&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10" +
                "&TXCODE=YXDL03&APPNAME=建融慧学APP&OPENID=&SCHOOLID=1061002&STUDENTID=18460368&PHONENUM=&NAME=谢小金&IDTYPE=&USERID=&TM="+date;
        String strKey = "RZsyTKLchnAZZFdYAdOD1UWbMkyi3IZw";   //体验学校渠道密钥
        MCipherEncryptor ccbEncryptor = new MCipherEncryptor(strKey.substring(strKey.length() - 30));
        ccbparam = ccbEncryptor.doEncrypt(ccbparam);
        System.out.println(head+ccbparam);
    }

    /**
     * 3DES解密
     * @param encryptedText Base64编码的密文
     * @param key 24字节密钥
     * @return 解密后的明文
     * @throws Exception
     */
    public static String decrypt3DES(String encryptedText, String key) throws Exception {
        byte[] keyBytes = key.getBytes("UTF-8");
        SecretKey secretKey = new SecretKeySpec(keyBytes, "DESede");

        // 设置CBC模式下的IV
        byte[] iv = "00000000".getBytes();
        IvParameterSpec ivSpec = new IvParameterSpec(iv);

        Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");
        cipher.init(Cipher.DECRYPT_MODE, secretKey, ivSpec);

        // 密文是Base64编码
        byte[] encryptedBytes = Base64.getDecoder().decode(encryptedText);
        byte[] decryptedBytes = cipher.doFinal(encryptedBytes);

        return new String(decryptedBytes);
    }

    public static void parseDeptName(String deptName){
        // 统一分隔符
        String unified = deptName.replaceAll("[/\\\\]+", "\\|");
        String[] parts = unified.split("\\|");
        String college = "";
        String major = "";
        String className = "";

        // 先找学院、班级
        for (String part : parts) {
            if (college.isEmpty() && part.contains("学院")) {
                college = part;
            } else if (className.isEmpty() && part.contains("班")) {
                className = part;
            }
        }
        // 找专业（包含“工程”、“学”、“技术”、“管理”等，或为最后一项且不是班级）
        for (String part : parts) {
            if (major.isEmpty() && (part.contains("工程") || part.contains("学") || part.contains("技术") || part.contains("管理"))) {
                if (!part.contains("学院")) {
                    major = part;
                }
            }
        }
        if (major.isEmpty() && parts.length > 0) {
            String last = parts[parts.length - 1];
            if (!last.contains("班") && !last.contains("学院")) {
                major = last;
            }
        }

        // 剩余项按顺序补全
        for (String part : parts) {
            if (college.isEmpty() && !part.contains("班") && !part.contains("工程") && !part.contains("学") && !part.contains("技术") && !part.contains("管理")) {
                college = part;
            }
            if (major.isEmpty() && !part.contains("班") && !part.contains("学院")) {
                major = part;
            }
            if (className.isEmpty() && part.contains("班")) {
                className = part;
            }
        }

        System.out.println("学院： " + college );
        System.out.println("专业： " + major );
        System.out.println("班级： " + className );
    }

    public static String testSP(String str){
        // 检查字符串是否为空
        if (str == null || str.isEmpty()) {
            return "空串";
        }

        // 按@分割字符串
        String[] parts = str.split("@");

        // 检查格式是否正确(必须包含3个部分)
        if (parts.length != 3) {
            return "格式错误";
        }
        return "true";
    }



    public  static String testWuda(){
        String res="APPID=102004&APPNAME=智慧武大&SCHOOLID=10486&NAME=杨成&STUDENTID=PQ003834&QRCODE=" +qrcode+
                "&QRCODETYPE=1&TM="+date+"&TXCODE=YXZF01";
        return res;
    }
    public static void TestLogin() throws Exception{
        String head="https://app.xiaoyuan.ccb.com/LHECISM/CCBYXxcxLgServiceReqServlet?ccbParam=";
        String ccbParam="APPID=wx796af3381abe60e0&OPENID=oZThW46-S6cSp7527zt1kJFeSBkQ&SCHOOLID=32060027&IDTYPE=&TM="+date+"&TXCODE=YXDL01&STUDENTID=18460368718";
        String strKey = "39218dc300f7653a8f29d1894257beec";
        MCipherEncryptor ccbEncryptor = new MCipherEncryptor(strKey);
        ccbParam = ccbEncryptor.doEncrypt(ccbParam);
        System.out.println(head+ccbParam);
    }


    public static String unescape(String src) {
        if (src == null || src =="" ){
            return "";
        }
        StringBuffer tmp = new StringBuffer();
        tmp.ensureCapacity(src.length());
        int lastPos = 0, pos = 0;
        char ch;
        while (lastPos < src.length()) {
            pos = src.indexOf("%", lastPos);
            if (pos == lastPos) {
                if (src.charAt(pos + 1) == 'u') {
                    ch = (char) Integer.parseInt(src.substring(pos + 2, pos + 6), 16);
                    tmp.append(ch);
                    lastPos = pos + 6;
                }
                else {
                    ch = (char) Integer.parseInt(src.substring(pos + 1, pos + 3), 16);
                    tmp.append(ch);
                    lastPos = pos + 3;
                }
            } else {
                if (pos == -1) {
                    tmp.append(src.substring(lastPos));
                    lastPos = src.length();
                } else {
                    tmp.append(src.substring(lastPos, pos));
                    lastPos = pos;
                }
            }
        }
        return tmp.toString();
    }
    public static String escape(String src) {
        if( src==null || src==""){
            return "";
        }
        int i;
        char j;
        StringBuffer tmp = new StringBuffer();
        tmp.ensureCapacity(src.length() * 6);
        for (i = 0; i < src.length(); i++) {
            j = src.charAt(i);
            if (Character.isDigit(j) || Character.isLowerCase(j) || Character.isUpperCase(j))
                tmp.append(j);
            else if (j < 256) {
                tmp.append("%");
                if (j < 16){
                    tmp.append("0");
                }
                tmp.append(Integer.toString(j, 16));
            } else {
                tmp.append("%u");
                tmp.append(Integer.toString(j, 16));
            }
        }
        return tmp.toString();
    }


    public static void encodeUrlAnother() throws Exception{
        String sc = "https://app.xiaoyuan.ccb.com";//生产环境
        String strKey = "qLYBDt+PRuynNzIaAklDgKi2AQ7fj0bs";   //武汉大学渠道密钥

        String head_url = sc+"/LHECISM/CCBYXLgServiceReqServlet?APPID=102004&CHARSET=utf-8&ccbParam=";
        //加密
        String ccbParm = testWuda();
        MCipherEncryptor ccbEncryptor = new MCipherEncryptor(strKey.substring(strKey.length() - 30));
        ccbParm = ccbEncryptor.doEncrypt(ccbParm);

        System.out.println(head_url+ccbParm);
//        sendRequest(head_url+ccbParm);
    }


    public static void encodeUrlTwo() throws Exception{

        String sc = "https://app.xiaoyuan.ccb.com";//生产环境
        //修改了学校，记得把strKey，ECARDEVID也改成对应学校的值
//        String strKey = "dukZFRXOGXaJ4BViue9YpHbpGRUVzhl2";  //广州南方学院番禺附属中学一卡通密钥
//        String strKey = "YuC8irDEhqKnFXUZlEm6jGLgvIqwxIai";   //广州商学院一卡通密钥
//        String strKey = "Rr9DTJJeCHl2PZhwVFHxLEa/Q0ySXgh5";   //汕尾技师学院一卡通密钥
//        String strKey = "2aEOFtWowliFKiXpGoYT0NmhDhbVqMJY";   //广东舞蹈戏剧职业学院一卡通密钥
//        String strKey = "RQ4svCosyJ1YkYnOBGiSq0UOLLwqLMid";   //哈尔滨医科大学附属第四医院一卡通密钥
//        String strKey = "NHxz7GdikhCRXir7C9a/zTR8c+xnYpIQ";   //融安县初级中学	一卡通密钥
//        String strKey = "v8erZL/BMop240y2a8LL1b/Hq2S/wTKK";   //体验学校一卡通密钥
//        String strKey = "05HQGeBM6ul5qFjaPWK5aNOR0BngTOrp";   //十堰车城高级中学_TS
//        String strKey = "Xjd56v7ysA5AhV0VzblrUV43eer+8rAO";   //青岛
//        String strKey = "mPe5uQIyDdB1DYpGRZSrZJj3ubkCMg3Q";   //呼和浩特市第二中学一卡通密钥
//        String strKey = "Xq7lI8JK4yYvXdMmSooq716u5SPCSuMm";   //广州科学城中学一卡通密钥
//        String strKey = "dVTL2qRU05IZOGLvNIMfPnVUy9qkVNOS";   //延边大学一卡通密钥
//        String strKey = "v8erZL/BMop240y2a8LL1b/Hq2S/wTKK";   //体验学校一卡通密钥
//        String strKey = "dukZFRXOGXaJ4BViue9YpHbpGRUVzhl2";   //明新中学一卡通密钥
//        String strKey = "BEYTSYCkRtognsG/PssNjwRGE0mApEba";   //东南大学一卡通密钥
//        String strKey = "RTSz9xq1DhCGI82ROC+rZ0U0s/catQ4Q";   //玉林职业技术学院
//        String strKey = "eXpJlEAsaNMIRdlk0O+JB3l6SZRALGjT";   //江苏工程职业技术学院
//        String strKey = "Xq7lI8JK4yYvXdMmSooq716u5SPCSuMm";   //达拉特旗第七中学

        String strKey = "Fil5L78xOEYZ3KETkQ1w8RYpeS+/MThG";
        //记得对应修改ECARDEVID
//        String head_url = sc+"/LHECISM/CCBYXServiceReqServlet?ECARDEVID="+ECARDEVID+"&SCHID="+shl_id+"&ccbParam=";
        String head_url=sc+"/LHECISM/CCBYXServiceReqServlet";
        String servlet_param="ECARDEVID="+ECARDEVID+"&SCHID="+shl_id+"&ccbParam=";
        String hho = "https://app.xiaoyuan.ccb.com/LHECISM/PayResultNoticeServlet";//生产环境
        String AMOUNT="0.01";  //交易金额

        //加密
        String ccbParm = YXDL08();  //离线码支付
        MCipherEncryptor ccbEncryptor = new MCipherEncryptor(strKey.substring(strKey.length() - 30));
        ccbParm = ccbEncryptor.doEncrypt(ccbParm);

        System.out.println(head_url+"?"+servlet_param+ccbParm);
        long startTime=System.currentTimeMillis();
//        String result=sendRequest(head_url+ccbParm);

//        String result=sendRequestAboutImng(head_url,servlet_param+ccbParm);
//        System.out.println("响应结果："+result); //打印返回结果
        //处理周报和日报返回的结果
//        processResponse(result);
//        long endTime=System.currentTimeMillis();
//        System.out.println("运行时间："+(endTime-startTime)+"毫秒");
        //PAY300需要YXY300解码才可以执行
//        testPay300(AMOUNT);

//        测试PAY400需要YXY300解码才可以执行
//        String ccbParm2 = PAY400(AMOUNT);
//        ccbParm2 = ccbEncryptor.doEncrypt(ccbParm2);
//        String para="ECARDEVID="+ECARDEVID+"&SCHID="+shl_id+"&ccbParam="+ccbParm2;
//        System.out.println(head_url+ccbParm2);
//        String result2=sendRequestAboutImng(head_url,para);
//        System.out.println("响应结果："+result2);

    }
    public static String YXDL08(){
        String st_id="qht2510";
        String order_id="TSETYXDL08"+date;
        String ccbParm = "TXCODE=YXDL08&APPID=wx9c7b93ae557aefb8&APPNAME=川大校友会&OPENID=&SCHOOLID=1061002"
                +"&STUDENTID="+st_id+"&NAME=邱浩涛&CARD_TPCD=06&TM="+date+"&RETURN_URL=&ORDER_ID="+order_id+"&AMOUNT=0.01&SCENE_CODE=12";
        return ccbParm;
    }
    public static String test(){
        String res="TXCODE=YXY970&BRANCHID=420000000&SHLID=10486&PROJECT_ID=2fdb695bc23e46eabbfba44b290aa433&FILEDATE=20250528" ;
        System.out.println("请求数据："+res);
        return res;
    }

    /**
     * 将加密串解密
     * @param strKey 一卡通密钥
     * @param param  加密串
     * @throws Exception
     */
    public static void decodeParam(String strKey,String param) throws Exception {
        if ("".equals(strKey) || strKey == null || strKey.length() < 32) {
            System.out.println("密钥长度不对");
            return ;
        }
        strKey = strKey.substring(2);
        MCipherDecryptor ccbDecryptor=new MCipherDecryptor(strKey);
        URLEncoder.encode(param,"utf-8");
//        System.out.println(URLDecoder.decode(param,"utf-8"));
        param=ccbDecryptor.doDecrypt(URLDecoder.decode(param,"utf-8"));
        System.out.println("解密后的串为："+param);
    }

    public static void decodeParamJiaMi(String strKey,String param) throws Exception {
        MCipherDecryptor ccbDecryptor=new MCipherDecryptor(strKey);
        URLEncoder.encode(param,"utf-8");
//        System.out.println(URLDecoder.decode(param,"utf-8"));
        param=ccbDecryptor.doDecrypt(URLDecoder.decode(param,"utf-8"));
        System.out.println("解密后的串为："+param);
    }

    public static String formUpload(String urlStr, Map<String, String> textMap,
                                    Map<String, String> fileMap,String contentType) {
        String res = "";
        HttpURLConnection conn = null;
        // boundary就是request头和上传文件内容的分隔符
        String BOUNDARY = "---------------------------123821742118716";
        try {
            URL url = new URL(urlStr);
            conn = (HttpURLConnection) url.openConnection();
            conn.setConnectTimeout(5000);
            conn.setReadTimeout(30000);
            conn.setDoOutput(true);
            conn.setDoInput(true);
            conn.setUseCaches(false);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Connection", "Keep-Alive");
            // conn.setRequestProperty("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)");
            conn.setRequestProperty("Content-Type","multipart/form-data; boundary=" + BOUNDARY);
            OutputStream out = new DataOutputStream(conn.getOutputStream());
            // text
            if (textMap != null) {
                StringBuffer strBuf = new StringBuffer();
                Iterator iter = textMap.entrySet().iterator();
                while (iter.hasNext()) {
                    Map.Entry entry = (Map.Entry) iter.next();
                    String inputName = (String) entry.getKey();
                    String inputValue = (String) entry.getValue();
                    if (inputValue == null) {
                        continue;
                    }
                    strBuf.append("\r\n").append("--").append(BOUNDARY).append("\r\n");
                    strBuf.append("Content-Disposition: form-data; name=\"" + inputName + "\"\r\n\r\n");
                    strBuf.append(inputValue);
                }
                out.write(strBuf.toString().getBytes());
            }
            // file
            if (fileMap != null) {
                Iterator iter = fileMap.entrySet().iterator();
                while (iter.hasNext()) {
                    Map.Entry entry = (Map.Entry) iter.next();
                    String inputName = (String) entry.getKey();
                    String inputValue = (String) entry.getValue();
                    if (inputValue == null) {
                        continue;
                    }
                    File file = new File(inputValue);
                    String filename = file.getName();

                    //没有传入文件类型，同时根据文件获取不到类型，默认采用application/octet-stream
                    contentType = new MimetypesFileTypeMap().getContentType(file);
                    //contentType非空采用filename匹配默认的图片类型
                    if(!"".equals(contentType)){
                        if (filename.endsWith(".png")) {
                            contentType = "image/png";
                        }else if (filename.endsWith(".jpg") || filename.endsWith(".jpeg") || filename.endsWith(".jpe")) {
                            contentType = "image/jpeg";
                        }else if (filename.endsWith(".gif")) {
                            contentType = "image/gif";
                        }else if (filename.endsWith(".ico")) {
                            contentType = "image/image/x-icon";
                        }
                    }
                    if (contentType == null || "".equals(contentType)) {
                        contentType = "application/octet-stream";
                    }
                    StringBuffer strBuf = new StringBuffer();
                    strBuf.append("\r\n").append("--").append(BOUNDARY).append("\r\n");
                    strBuf.append("Content-Disposition: form-data; name=\"" + inputName + "\"; filename=\"" + filename + "\"\r\n");
                    strBuf.append("Content-Type:" + contentType + "\r\n\r\n");
                    out.write(strBuf.toString().getBytes());
                    DataInputStream in = new DataInputStream(new FileInputStream(file));
                    int bytes = 0;
                    byte[] bufferOut = new byte[1024];
                    while ((bytes = in.read(bufferOut)) != -1) {
                        out.write(bufferOut, 0, bytes);
                    }
                    in.close();
                }
            }
            byte[] endData = ("\r\n--" + BOUNDARY + "--\r\n").getBytes();
            out.write(endData);
            out.flush();
            out.close();
            // 读取返回数据
            StringBuffer strBuf = new StringBuffer();
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line = null;
            while ((line = reader.readLine()) != null) {
                strBuf.append(line).append("\n");
            }
            res = strBuf.toString();
            reader.close();
            reader = null;
        } catch (Exception e) {
            System.out.println("发送POST请求出错。" + urlStr);
            e.printStackTrace();
        } finally {
            if (conn != null) {
                conn.disconnect();
                conn = null;
            }
        }
        return res;
    }
    public static void processResponse(String jsonStr) {
        JSONObject response = JSON.parseObject(jsonStr);

        // 处理基本信息
        System.out.println("结果: " + (response.getString("RESULT").equals("Y") ? "成功" : "失败"));
        String type=response.getString("TYPE");
        System.out.println("查询类型: " + ("1".equals(type) ? "周报查询" : "日报查询"));

        JSONArray data = response.getJSONArray("DATA");
        if("1".equals(type)&&data != null && !data.isEmpty()) {
            // 处理校园e码通数据
            JSONObject xiaoYuanECard = data.getJSONObject(0).getJSONObject("xiaoYuanECard");
            if(xiaoYuanECard != null) {
                System.out.println("校园e码通数据:");
                System.out.println("  累计接入高校数: " + xiaoYuanECard.getString("totalSchools_xy"));
                System.out.println("  累计接入K12学校数: " + xiaoYuanECard.getString("totalK12_xy"));
                System.out.println("  累计领卡数: " + xiaoYuanECard.getString("totalEcardNum"));
                System.out.println("  本周登录量: " + xiaoYuanECard.getString("weeklyLogin_xy"));
            }
            System.out.println();
            System.out.println();
            // 处理缴费大厅数据
            JSONObject jfdt = data.getJSONObject(1).getJSONObject("jfdt");
            if(jfdt != null) {
                System.out.println("缴费大厅数据:");
                System.out.println("  累计接入高校数: " + jfdt.getString("totalSchools_jf"));
                System.out.println("  累计接入K12学校数: " + jfdt.getString("totalK12_jf"));
                System.out.println("  累计用户数: " + jfdt.getString("totalUsers_jf"));
                System.out.println("  本周登录量: " + jfdt.getString("weeklyLogin_jf"));
            }
            System.out.println();
            System.out.println();
            // 处理成长版数据
            JSONObject czb = data.getJSONObject(2).getJSONObject("czb");
            if(czb != null) {
                System.out.println("成长版数据:");
                System.out.println("  累计接入学校数: " + czb.getString("totalSchools_czb"));
                System.out.println("  累计用户数: " + czb.getString("totalUsers_czb"));
                System.out.println("  本周登录量: " + czb.getString("weeklyLogin_czb"));
            }
            System.out.println();
            System.out.println();
            // 处理资金监管数据
            JSONObject zjjg = data.getJSONObject(3).getJSONObject("zjjg");
            if(zjjg != null) {
                System.out.println("资金监管数据:");
                System.out.println("  累计接入地市: " + zjjg.getString("totalCitys_zjjg"));
                System.out.println("  累计接入培训机构数: " + zjjg.getString("totalInstitus_zjjg"));
                System.out.println("  累计用户数: " + zjjg.getString("totalUsers_zjjg"));
                System.out.println("  本周登录量: " + zjjg.getString("weeklyLogin_zjjg"));
                System.out.println("  年累计缴费笔数(万笔): " + zjjg.getString("totalPayNum_zjjg"));
                System.out.println("  年累计缴费金额(万元): " + zjjg.getString("totalPayPrice_zjjg"));
            }
            System.out.println();
            System.out.println();
            // 处理分行特色数据
            JSONObject fhts = data.getJSONObject(4).getJSONObject("fhts");
            if(fhts != null) {
                System.out.println("分行特色数据:");
                System.out.println("  累计接入高校数: " + fhts.getString("totalSchools_ts"));
                System.out.println("  累计接入K12学校数: " + fhts.getString("totalK12_ts"));
                System.out.println("  累计接入其它机构: " + fhts.getString("totalOther_ts"));
                System.out.println("  线上圈存用户数: " + fhts.getString("onlineUsers_ts"));
                System.out.println("  线下圈存用户数: " + fhts.getString("offlineUsers_ts"));
                System.out.println("  年累计消费笔数(万笔): " + fhts.getString("totalPayNum_ts"));
                System.out.println("  年累计消费金额(万元): " + fhts.getString("totalPayPrice_ts"));

                System.out.println("  线上圈存年累计消费笔数: " + fhts.getString("onlinePayNum_ts"));
                System.out.println("  线上圈存年累计消费金额: " + fhts.getString("onlinePayPrice_ts"));
                System.out.println("  线下圈存年累计消费笔数: " + fhts.getString("offlinePayNum_ts"));
                System.out.println("  线下圈存年累计消费金额: " + fhts.getString("offlinePayPrice_ts"));

                System.out.println("  本周登录量: " + fhts.getString("weeklyLogin_ts"));
                System.out.println("  本周消费笔数(万笔): " + fhts.getString("weeklyNum_ts"));
                System.out.println("  本周消费金额(万元): " + fhts.getString("weeklyAmount_ts"));

                System.out.println("  线上圈存本周消费笔数: " + fhts.getString("onlineWeekNum_ts"));
                System.out.println("  线上圈存本周消费金额: " + fhts.getString("onlineWeekPrice_ts"));
                System.out.println("  线下圈存本周消费笔数: " + fhts.getString("offlineWeekNum_ts"));
                System.out.println("  线下圈存本周消费金额: " + fhts.getString("offlineWeekPrice_ts"));
            }

        }
        if("2".equals(type)&&data != null && !data.isEmpty()){
            System.out.println();
            System.out.println();
            // 处理日报产品分类数据
            JSONObject dayProduct = data.getJSONObject(1).getJSONObject("dayProduct");
            if(dayProduct != null) {
                System.out.println("日报产品分类数据:");
                System.out.println("  校园e码通小程序日活数: " + dayProduct.getString("DAU_xy"));
                System.out.println("  校园e码通小程序总用户: " + dayProduct.getString("total_users_xy"));
                System.out.println("  成长版小程序日活数: " + dayProduct.getString("DAU_czb"));
                System.out.println("  成长版小程序总用户: " + dayProduct.getString("total_users_czb"));
                System.out.println("  缴费大厅日活数: " + dayProduct.getString("DAU_jf"));
                System.out.println("  缴费大厅总用户: " + dayProduct.getString("total_users_jf"));
                System.out.println("  资金监管日活数: " + dayProduct.getString("DAU_zjjg"));
                System.out.println("  资金监管总用户: " + dayProduct.getString("total_users_zjjg"));
                System.out.println("  分行特色日活数: " + dayProduct.getString("DAU_ts"));
                System.out.println("  分行特色总用户: " + dayProduct.getString("total_users_ts"));
            }
            System.out.println();
            System.out.println();
            // 处理日报生活类数据
            JSONObject dayAct = data.getJSONObject(2).getJSONObject("dayAct");
            if(dayAct != null) {
                System.out.println("日报生活类数据:");
                System.out.println("  出入门禁: " + dayAct.getString("entry"));
                System.out.println("  课程报名: " + dayAct.getString("lesson"));
                System.out.println("  本周膳食: " + dayAct.getString("weekDiet"));
                System.out.println("  校园动态: " + dayAct.getString("campusDynamic"));
            }
            System.out.println();
            System.out.println();
            // 处理日报金融类数据
            JSONObject dayFinance = data.getJSONObject(3).getJSONObject("dayFinance");
            if(dayFinance != null) {
                System.out.println("日报金融类数据:");
                System.out.println("  领取校园卡: " + dayFinance.getString("getCard"));
                System.out.println("  开通钱包: " + dayFinance.getString("openQb"));
                System.out.println("  e码通消费日活数: " + dayFinance.getString("DAUpay_xy"));
                System.out.println("  e码通消费订单量: " + dayFinance.getString("orderNum_xy"));
                System.out.println("  e码通消费订单金额: " + dayFinance.getString("orderAmount_xy"));
                System.out.println("  微信消费订单量: " + dayFinance.getString("orderNum_wx"));
                System.out.println("  微信消费订单金额: " + dayFinance.getString("orderAmount_wx"));
                System.out.println("  支付宝消费订单量: " + dayFinance.getString("orderNum_zfb"));
                System.out.println("  支付宝消费订单金额: " + dayFinance.getString("orderAmount_zfb"));
                System.out.println("  银联消费订单量: " + dayFinance.getString("orderNum_yl"));
                System.out.println("  银联消费订单金额: " + dayFinance.getString("orderAmount_yl"));
                System.out.println("  校园卡充值日活数: " + dayFinance.getString("DAUpay_xyk"));
                System.out.println("  校园卡充值订单量: " + dayFinance.getString("orderNum_xyk"));
                System.out.println("  校园卡充值订单金额: " + dayFinance.getString("orderAmount_xyk"));
                System.out.println("  分行特色圈存日活数: " + dayFinance.getString("DAUpay_ts"));
                System.out.println("  分行特色圈存订单量: " + dayFinance.getString("orderNum_ts"));
                System.out.println("  分行特色圈存订单金额: " + dayFinance.getString("orderAmount_ts"));
                System.out.println("  智慧配餐日活数: " + dayFinance.getString("DAUpay_zhpc"));
                System.out.println("  智慧配餐订单量: " + dayFinance.getString("orderNum_zhpc"));
                System.out.println("  智慧配餐订单金额: " + dayFinance.getString("orderAmount_zhpc"));
                System.out.println("  培训报名订单量: " + dayFinance.getString("orderNum_px"));
                System.out.println("  培训报名订单金额: " + dayFinance.getString("orderAmount_px"));
                System.out.println("  水电费缴纳日活数: " + dayFinance.getString("DAUpay_sdf"));
                System.out.println("  水电费缴纳订单量: " + dayFinance.getString("orderNum_sdf"));
                System.out.println("  水电费缴纳订单金额: " + dayFinance.getString("orderAmount_sdf"));
                System.out.println("  学杂费缴纳订单量: " + dayFinance.getString("orderNum_xzf"));
                System.out.println("  学杂费缴纳订单金额: " + dayFinance.getString("orderAmount_xzf"));
            }
        }

        System.out.println("全局事件跟踪号: " + response.getString("TRACEID"));
        if(response.getString("ERRCODE") != null) {
            System.out.println("错误码: " + response.getString("ERRCODE"));
            System.out.println("错误信息: " + response.getString("ERRMSG"));
        }
    }

    public static String yxy967(){
        System.out.println("YXY967");
//        String pre="120221302130";
//        String st_id="";
//        for (int i = 101; i < 111; i++) {
//            st_id=st_id+pre+i+",";
//        }
//        st_id=st_id.substring(0,st_id.length()-1);

        st_id="";
        String ccbParm = "TXCODE=YXY967&BRANCHID="+BRANCHID+"&DEV_ID=RKFRT0000000DC629420F729"
                +"&PAGENUM=12"+"&PAGESIZE=100"+"&SHL_ID="+shl_id;
//        String ccbParm = "TXCODE=YXY967&BRANCHID=441000000&SHL_ID=44150001&DEV_ID=10000000&PAGENUM=1&PAGESIZE=100&UPDATETIME=";
        System.out.println(ccbParm);
        return ccbParm;
    }

    public static String yxy111(){
        System.out.println("YXY111");

        List<HashMap<String, String>> USERPICRESLIST=new ArrayList<>();
        HashMap<String, String> map1 = new HashMap<>();
        map1.put("ST_ID","18460368718");
        map1.put("STATUS","0");
        map1.put("MESSAGE","图片不及格");
        USERPICRESLIST.add(map1);
        HashMap<String, String> map2 = new HashMap<>();
        map2.put("ST_ID","13416186929");
        map2.put("STATUS","1");
        map2.put("MESSAGE","图片及格");
        USERPICRESLIST.add(map2);
        HashMap<String, String> map3 = new HashMap<>();
        map3.put("ST_ID","15051080181");
        map3.put("STATUS","2");
        map3.put("MESSAGE","图片获取异常");
        USERPICRESLIST.add(map3);


        System.out.println(USERPICRESLIST);
        String ccbParm = "TXCODE=YXY111&BRANCHID="+BRANCHID +"&DEVICE_SN=133D002000700026&SHL_ID="+shl_id
                +"&USERPICRESLIST=[{\"ST_ID\":\"W202403019\",\"MESSAGE\":\"图片获取异常\",\"STATUS\":\"2\",\"FACIAL_FEATURE\":\"Test_FACIAL_FEATURE23\"}]";
        System.out.println(ccbParm);
        return ccbParm;
    }
    public static String yxy971(){
        System.out.println("yxy971");
        String ordr_id="TESTYXY971"+date;
        String ccbParm = "TXCODE=YXY971&BRANCHID="+BRANCHID+"&AMOUNT=265&"
                + "&PROJECT_ID=c2d6ad9504b3498cb6324830783bd6bb&SHL_ID="+shl_id+"&ORDER_ID="+ordr_id+"&PAYEE_NM=吴天赐&PAYEE_XH=109000480";
        System.out.println(ccbParm);
        return ccbParm;
    }
    public static String yxy902(){
        System.out.println("yxy902");
        String ccbParm = "TXCODE=YXY902&GC_TYPE=1&"
                + "&SHL_ID="+shl_id+"&QRCODE="+URLEncoder.encode(qrcode);
        System.out.println(ccbParm);
        return ccbParm;
    }
    public static String yxy114(){
        System.out.println("yxy114");
        String ordr_id="c4689d15ea9d11f717515274008210";
        String ccbParm = "TXCODE=YXY114&BRANCHID="+BRANCHID+"&QRYTIME=2&"
                + "&TRAN_DATE=&SCHID="+shl_id+"&ORDERID="+ordr_id;
        System.out.println(ccbParm);
        return ccbParm;
    }
    public static String yxy113(){

        String ccbParm = "TXCODE=YXY113&BRANCHID="+BRANCHID+"&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10"
                +"&QRCODE="+qrcode+"&SHL_ID="+shl_id+"&TYPE=";
        System.out.println(ccbParm);
        return ccbParm;
    }

    public static String yxy918(){
        String ccbParm = "TXCODE=YXY918&SHL_ID="+shl_id+"&ST_ID=18460368718&REMARK1=&REMARK2=";
        System.out.println(ccbParm);
        return ccbParm;
    }

    public static String yxrz03(){
        String ccbParm = "APPID=wx796af3381abe60e0&USERID=&PHONE_NO=&CSM_DATE_START=20240801&CSM_DATE_END=20240826" +
                "&TM="+date+"&SHL_ID=32010019&ST_ID=230248604&TXCODE=YXRZ03";
        System.out.println(ccbParm);
        String d="yyyy-MM-dd HH:mm:ss";
        return ccbParm;
    }

    /**
     * 手机银行APP->数字校园卡
     */
    public static String yxdl07(){
        String ccbParm = "TXCODE=YXDL07&APPID=104001&OPENID=2421900001033556548&TM="+date;
        System.out.println(ccbParm);
        return ccbParm;
    }
    public static String yxy923(){

        String ccbParm = "TXCODE=YXY923&BRANCHID=150000000&TERMNO=50f8a9c37d18945c&Shl_id=15010002&" +
                "MERCHANTID=105191082113151&MONEY=0.01&PLAT_DATE=20240625&" +
                "Ordr_ID=50f8a9c37d18945c17193041348663&REMARK1=&REMARK2=&" +
                "FLOWNO=2024062517271092676&GPS_INFO=&rXtNo=testyannuo01";
        System.out.println(ccbParm);
        return ccbParm;
    }

    public static String yxy927(){
        String orderid="TESTYXY927"+date;
        String ccbParm = "TXCODE=YXY927&BRANCHID="+BRANCHID+"&ORDERID="+orderid+"&SHL_ID="+shl_id+"&" +
//                "MERCHANTID=105000582997802&CARD_INFO=TESTXIE001&" +
                "MERCHANTID=105005253999624&CARD_INFO=TESTXIE001&" +
                "TERMNO=c4689d15ea9d11f7&AMOUNT=0.02&MERFLAG=1&" +
                "POSID=071984009";
////        "&OFFLINE_FLAG=1&OFFLINE_PAY_TIME="+date;
//        String ccbParm = "TXCODE=YXY927&BRANCHID=441000000&ORDERID="+orderid+"&SHL_ID="+shl_id+"&" +
//                "MERCHANTID=TEST0001&CARD_INFO=TESTXIE001&" +
//                "TERMNO=21AMAF630064&AMOUNT=0.01&MERFLAG=1&" +
//                "POSID=078437202";
        System.out.println(ccbParm);
        return ccbParm;
    }
    public static String yxy950(){
        String ORDERID="TESTYXY950"+date;
//        String ccbParm = "TXCODE=YXY950&BRANCHID=450000000&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10"
//        				+ "&MERCHANTID=105000082203900&MERFLAG=1&AMOUNT=0.01&TrdPt_Pltfrm_OrCd=8430" //
//        				+ "&Device_Info=ARMXF0000000721D7A560022&SHL_ID=10486&ST_ID=&POSID=313316761" //
//        				+ "&ORDERID=20211018006&QRCODE=CCB9911111&TERMNO=8990123456&ADDRESS_INFO=sfdfdfsdf&PROINFO=1028788045"; 		//钱包码 //

//         String ccbParm = "TXCODE=YXY950&BRANCHID=510000000&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10" //
//         + "&AMOUNT=0.01&SHL_ID="+shl_id
//         + "&ORDERID="+ORDERID+"&QRCODE="+qrcode+"&TERMNO=ARMXF0000000721D7A560022&PROINFO="; 		//CCB9911111   101234567891234567

        String ccbParm = null;
        try {
            ccbParm = "TXCODE=YXY950&BRANCHID="+BRANCHID
                    + "&AMOUNT=0.01&SHL_ID="+shl_id
                    + "&ORDERID="+ORDERID+"&QRCODE="+URLEncoder.encode(URLEncoder.encode(qrcode,"utf-8"),"utf-8") +"&TERMNO=bb479a0bfae11775";
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        }
        return ccbParm;
    }

    public static String yxy911(){
        System.out.println("yxy911");
        String ccbParm = "SHL_ID="+shl_id+"&QRCODE="+qrcode+"&TERMNO=320f22474a99d5c9&TXCODE=YXY911&BRANCHID="+BRANCHID ;
        System.out.println(ccbParm);
        return ccbParm;
    }


    public static String yxy104(){
        System.out.println("yxy104");
        String ccbParm = "SHL_ID=45020003&ST_ID=13202221080&LOGIN_TYPE=1&" +
                "PASS_WORD=&BRANCHID=450000000&DEVICE_SN=1170580P00100121&TXCODE=YXY104&TM=20240621201800";
        return ccbParm;
    }
    public static String yxy201(){
        System.out.println("yxy201");
        String order_id="EP6677240900106934";
        String ccbParm = "QRCODETYPE=1&MERCHANTID=2100687093" +
                "&QRYTIME=1&MERFLAG=1&BRANCHID=450000000&TXCODE=YXY201&ORDERID="+order_id;
        return ccbParm;
    }

    public static String yxy107(){
        System.out.println("yxy107");
        String ccbParm = "SHL_ID=45020003&ST_ID=13202221080&LOGIN_TYPE=1&" +
                "PASS_WORD=&BRANCHID=450000000&DEVICE_SN=1170580P00100121&TXCODE=YXY107&TM=20240620132600";
        return ccbParm;
    }

    public static String yxy932(){
        System.out.println("yxy932");
        String ccbParm = "TXCODE=YXY932&SHLID="+shl_id+"&PHONENO=18460368718&SCENEID=2" ;
        System.out.println(ccbParm);
        return ccbParm;
    }
    public static String yxy936(){
        System.out.println("yxy936");
        String ccbParm = "TXCODE=YXY936&SHLID="+shl_id+"&FILEDATE=20250913" ;
        return ccbParm;
    }

    public static String yxy937(){
        System.out.println("yxy937");
        String ccbParm = "TXCODE=YXY937&Shl_id="+shl_id+"&DATE=20250913&BRANCHID=370000000&MERCHANTID=105910000509210" +
                "&KIND=1&FILETYPE=1&STATUS=" ;
        System.out.println(ccbParm);
        return ccbParm;
    }
    public static String yxy939(){
        System.out.println("yxy939");
        String order_id="TESTYXY939"+date;
        String ccbParm = "TXCODE=YXY939&SHLID="+shl_id+"&ORDERID="+"18460368718&SCENEID=2" ;
        System.out.println(ccbParm);
        return ccbParm;
    }
    public static String yxy600(){
        System.out.println("yxy600");
        String order_id="TESTYXY600"+date;
        String ccbParm = "TXCODE=YXY600&Shl_id="+shl_id+"&YKT_ORDERID="+order_id+"&BRANCHID=441000000&MERCHANTID=105000582997802" +
                "&MERFLAG=1&ORDERID="+order_id ;
        return ccbParm;
    }
    public static String yxy942(){
        System.out.println("yxy942");
        String ccbParm = "TXCODE=YXY942&Shl_id="+shl_id+"&DATE=20250709" ;
        return ccbParm;
    }
    public static String yxy804(){
        System.out.println("yxy804");
        String ccbParm = "TXCODE=YXY804&SCHID=10001&ORDERID=c4689d15ea9d11f717454848212026&QRCODE=&TRAD_DATE=&BRANCHID=441000000" ;
        return ccbParm;
    }

    public static String yxy118() throws Exception{
        System.out.println("yxy118");
        String base64_img=imageToBase64Str("D:\\xiao\\CCBWork\\somejava\\TESTPAY300\\imgs\\img3.png");
        if("异常".equals(base64_img)){
            return "将图片转换为Base64编码异常";
        }
        base64_img=URLEncoder.encode(base64_img,"utf-8");
        String ccbParm = "SHL_ID=10001&ST_ID=18460368718&LOGIN_TYPE=1&TERMNO=xieterm001" +
                "&TXCODE=YXY118&PALM_ID=pl"+date+"&PALM_IMAGE="+base64_img;
        return ccbParm;
    }

    public static String yxy110(){
        System.out.println("yxy110");
        String ccbParm = "TXCODE=YXY110&BRANCHID="+BRANCHID
                + "&SHL_ID="+shl_id+"&DEVICE_SN=FYWXYCJL221110520&QRCODE="+URLEncoder.encode(qrcode)+"&PASS_TYPE=1&ST_ID=18460368718&CARD_NO=123456568889";
        System.out.println(ccbParm);
        return ccbParm;
    }

    public static String yxy115(){
        System.out.println("yxy115");
        String ccbParm = "TXCODE=YXY115&BRANCHID="+BRANCHID
                + "&SHL_ID="+shl_id+"&DEV_ID=FYWXYCJL221110520";
        System.out.println(ccbParm);
        return ccbParm;
    }

    public static String yxy109(){
        System.out.println("YXY109");
        String TRACE_ID="TESTYXY109"+date;
//        String PLAT_TXN_TIME=date.substring(8);
        String PLAT_TXN_TIME="135152";
        String PASS_FLOW_ID="9080940071749196081646195";
        String IS_PASS="1";  //是否允许通行；0-禁止通行，1-允许通行
        String img=imageToBase64Str("D:\\xiao\\CCBWork\\somejava\\CTPTEST\\imgs\\img2.png");
        img=URLEncoder.encode(img);
        String ccbParm = "TXCODE=YXY109&BRANCHID="+BRANCHID+"&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10"
                + "&SHL_ID="+shl_id+"&ST_ID=18460368718&CST_NM=谢小金&TRACE_ID="+TRACE_ID+"&PLAT_TXN_DATE=20250609&PLAT_TXN_TIME="+PLAT_TXN_TIME+"&DEVICE_SN=FYWXYCJL221110520&FACE_IMAGE="+img+"&PASS_TYPE=1"
                +"&RECORD_TYPE=1&IS_PASS="+IS_PASS+"&PASS_FLOW_ID="+PASS_FLOW_ID+"&QRCODE="+qrcode+"&CARD_NO=123456568889";
        return ccbParm;
    }
    public static String yxy966(){
        System.out.println("yxy966");
        String order_ID="15659847541758281309604";
        String img=imageToBase64Str("./imgs/1758281311356.jpg");
        img=URLEncoder.encode(img);
        String ccbParm = "TXCODE=YXY966&BRANCHID="+BRANCHID+"&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10"
                + "&SHL_ID="+shl_id+"&ST_ID=18775504501&TERMNO=202500300208&ORDER_IMAGE="+img+"&ORDERID="+order_ID+"&ORDER_TIME="+date;
        return ccbParm;
    }

    public static String yxy120(){
        System.out.println("yxy120");
        String HXCODE="DCHX714949421";
        String ccbParm = "TXCODE=YXY120&BRANCHID="+BRANCHID+"&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10"
                + "&SHL_ID=23010001&HXCODE="+HXCODE+"&DEVICE_SN=";
        System.out.println("加密前参数："+ccbParm);
        return ccbParm;
    }

    //YXY906 PAYCONTENT是mer_info表中的term_id字段
    public static String yxy906(){
        System.out.println("YXY906");
        String AMOUNT="";//扣款金额
        String ordr_id="TESTYXY906"+date;
        String REMARK1=escape("测试商品1");
//        String ccbParm="ST_ID=W202403019&PROINFO=消费&ORDERID=202506300916176C5260A5DD2AD9D5&AMOUNT=0.01&TERMNO1=ARMXF00000000C65FA026303&REMARK1=2025-06-30 11:54:56 高中部金好彩[30054]" +
//                "&TXCODE=YXY906&PAYCONTENT=ARMXF00000000C65FA026303" +
//                "&SHL_ID=10001&BRANCHID=441000000&OFFLINE_FLAG=1&OFFLINE_PAY_TIME=20250625120003";
        String ccbParm = "TXCODE=YXY906&BRANCHID="+BRANCHID
                +"&ST_ID="+st_id+ "&SHL_ID="+shl_id+"&AMOUNT="+AMOUNT+"&ORDERID="+ordr_id+"&TERMNO1=149D002M00800509"
                +"&CST_NM=&PAYCONTENT=149D002M00800509&REMARK1=测试";
//         +"&MENU_ORDER=c3e7dc42952f4690b58f155f0fe95fdf@2||2ebdcbba819244328e5fd2b3440eb4f0@1";
//         +"&TEMPORARY_DISH=temporaryDishCodeJRHX2025001@2@0.01";
        return ccbParm;
    }
    public static String newyxy906(){
        System.out.println("YXY906");
        String AMOUNT="9.41";//扣款金额
        String st_id="G532522200707063521";
        String ordr_id="HHHNYZ"+date;
        String REMARK1="2025年8月13日重复代发冲正";
        String ccbParm = "TXCODE=YXY906&BRANCHID="+BRANCHID
                +"&ST_ID="+st_id+ "&SHL_ID="+shl_id+"&AMOUNT="+AMOUNT+"&ORDERID="+ordr_id+"&TERMNO1=Chongzheng2508"
                +"&CST_NM=&PAYCONTENT=Chongzheng2508&REMARK1="+REMARK1;
        return ccbParm;
    }
    public static String yxy125(String AMOUNT){
        System.out.println("YXY125");
        String ordr_id="9000000828445614";
        String REMARK1=escape("测试水控1");
        String ccbParm = "TXCODE=YXY125&BRANCHID="+BRANCHID
                +"&ST_ID="+st_id+ "&SHL_ID="+shl_id+"&AMOUNT="+AMOUNT+"&ORDERID="+ordr_id+"&TERMNO1=149D002M00800509"
                +"&CST_NM=&CONTROL_TYPE=1&USAGE_TIME=700&WATER_CONSUMPTION=2000&REMARK1=水控扣费";
//                +"&OFFLINE_FLAG=1&OFFLINE_PAY_TIME=20250806092500";
//         +"&MENU_ORDER=c3e7dc42952f4690b58f155f0fe95fdf@2||2ebdcbba819244328e5fd2b3440eb4f0@1";
//         +"&TEMPORARY_DISH=temporaryDishCodeJRHX2025001@2@0.01";
        return ccbParm;
    }
    //退款，退款需提供订单号ordr_id和金额
    public static String yxy922(String money){
        System.out.println("YXY922");
        String ordr_id="XYZH01202509181000343892";//修改订单号进行退款 ,00131202503220633213794299,0013120250322062832710310824
        String ccbParm = "TXCODE=YXY922&BRANCHID=510000000"
                + "&Shl_id="+shl_id+"&MONEY="+money+"&ORDER="+ordr_id+"&MERCHANTID="+MERCHANTID+"&PLAT_DATE=20250917";
        System.out.println(ccbParm);
        return ccbParm;
    }

    //点餐退款，退款需提供订单号ordr_id和金额
    public static String yxy122(String money){
        System.out.println("YXY122");
        String ordr_id="202509020957015BB6681B616";//修改订单号进行退款 ,00131202503220633213794299,0013120250322062832710310824
        String ccbParm = "TXCODE=YXY122&BRANCHID="+BRANCHID
                + "&Shl_id="+shl_id+"&MONEY="+money+"&ORDER="+ordr_id+"&MERCHANTID="+MERCHANTID+"&SHOP_ID=TESTPCISupermarketShop";
        System.out.println(ccbParm);
        return ccbParm;
    }

    public static String yxy980(){
        System.out.println("YXY980");
        String type="1";//1-周报查询，2-日报查询
        String START_DATE="20250523";  //周报开始日期
        String END_DATE="20250529";  //周报结束日期
        String WEEKLY_YEAR="2025";  //周报统计年份

        String DAILY_DATE="20250320"; //日报查询日期
        String count="200";
        String ccbParm = "TXCODE=YXY980&BRANCHID="+BRANCHID + "&SHL_ID="+shl_id+
                "&TYPE="+type+"&START_DATE="+START_DATE+"&END_DATE="+END_DATE+"&DAILY_DATE="+DAILY_DATE+"&WEEKLY_YEAR="+WEEKLY_YEAR+
                "&TM="+System.currentTimeMillis()+"&count="+count;
        System.out.println(ccbParm);
        return ccbParm;
    }
    public static String yxy905(){
        String orderId="TESTYXY905"+date;
        System.out.println("yxy905");
        String ccbParm = "TXCODE=YXY905&BRANCHID="+BRANCHID+"&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10&"
                + "&SUB_MCH_ID=123456789&TERMNO=01&SHL_ID="+shl_id+"&AMOUNT=0.01&QRCODE="+qrcode
                + "&MCH_ID="+MERCHANTID+"&QRCODETYPE=5&ORDERID="+orderId;
        return ccbParm;
    }
    public static String yxy900(){
        String ordr_id="TESTYXY900"+date;
        System.out.println("yxy900");
        String ccbParm = "TXCODE=YXY900&BRANCHID="+BRANCHID+"&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10&"
                + "&SUB_MCH_ID=123456789&TERMNO=01&SHL_ID="+shl_id+"&AMOUNT=0.01&QRCODE="+qrcode
                + "&Mrch_ID="+MERCHANTID+"&QRCODETYPE=5&ORDERID="+ordr_id;
        return ccbParm;
    }
    public static String yxy501(){
//        String ordr_id="";
        String ordr_id="TESTYXY501"+date;
        System.out.println("yxy501");
        String ccbParm = "TXCODE=YXY501&BRANCHID="+BRANCHID+"&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10&"
                + "&TERMNO=13&SHL_ID="+shl_id+"&AMOUNT=0.01&QRCODE="+qrcode
                + "&app_id=2017052407327566&ORDERID="+ordr_id+"&org_pid=2088721085226061&pay_smid=2088200977795945&source_pid=2088431061523061&pid=2088721085226061W03";
        System.out.println(ccbParm);
        return ccbParm;
    }
    public static String yxy500(){
        String ordr_id="TESTYXY500"+date;
        System.out.println("yxy500");
        String ccbParm = "TXCODE=YXY500&BRANCHID="+BRANCHID+"&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10&"
                + "&SUB_MCH_ID=322798882&TERMNO=01&SHL_ID="+shl_id+"&AMOUNT=0.01&QRCODE="+qrcode
            + "&MCH_ID=1495293972&QRCODETYPE=5&ORDERID="+ordr_id+"&APPID=wx3b8bb3fad101bb07&CHANNEL_ID=87724971";
        return ccbParm;
    }
    //YXY300解码
    public static String yxy300(String AMOUNT){
        System.out.println("yxy300");
        String ordr_id="TESTYXY300"+date;
        String ccbParm = "TXCODE=YXY300&BRANCHID="+BRANCHID+"&PT_STYLE=10&"
                + "&TERMNO=01&SHL_ID="+shl_id+"&AMOUNT="+AMOUNT+"&QRCODE="+qrcode
                + "&MCH_ID="+MERCHANTID+"&QRCODETYPE=1&ORDERID="+ordr_id;
        return ccbParm;
    }
    //PAY400盒子支付
    public static String PAY400(String AMOUNT){
        System.out.println("PAY400");
        String order_id="TESTPAY400"+date;
        System.out.println(order_id);
        String remark="临时菜品测试";
        remark=escape(remark);
        String ccbParm = "TXCODE=YXY800&BRANCHID="+BRANCHID+"&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10"
                + "&MERCHANTID="+MERCHANTID+"&POSID="+POSID+"&MERFLAG="+MERFLAG+"&AMOUNT="+AMOUNT+"&TrdPt_Pltfrm_OrCd="+TrdPt_Pltfrm_OrCd
                + "&Device_Info=c4689d15ea9d11f7&SHL_ID="+shl_id+"&ST_ID="+st_id+"&REMARK1="+remark
                + "&ORDERID="+order_id+"&QRCODE="+qrcode+ "&TEMPORARY_DISH=null";
        // +"&MENU_ORDER=c3e7dc42952f4690b58f155f0fe95fdf@2||2ebdcbba819244328e5fd2b3440eb4f0@1";
               // +"&TEMPORARY_DISH=temporaryDishCodeJRHX2025001@2@0.01";

        return ccbParm;
    }

    //PAY300
    public static void testPay300(String AMOUNT) throws Exception{
        //银行接口url
        String host = "https://ibsbjstar.ccb.com.cn/CCBIS/B2CMainPlat_00_BEPAY?";//生产
//        String host = "http://128.128.97.200:8102/CCBIS/B2CMainPlat_00_BEPAY?";//测试

        //商户信息
        String merInfo = "MERCHANTID="+MERCHANTID+"&POSID="+POSID+"&BRANCHID="+BRANCHID;
        //获取柜**整公钥
        String pubKey = "30819d300d06092a864886f70d010101050003818b0030818702818100d1b95ad903c6b56d773a8e76ea29ab798ecddbf11831176dadad447bf330fd1ef3090ec40abccd0ef663fb3482cbe31db44fab849e5d490720325bd6808bfbc7c86fe01e679fc8388e19447a3600717c87f50f4c3b34b50afa876fbb9ed987dbb3583b8aa40eb516a0909d17e47c8a1ad21b04d6a9ebfc34c4e5695946cd0063020111";
        String ordr_id="TESTPAY300"+date;
        String param = merInfo + "&MERFLAG="+MERFLAG+"&TERMNO1=&TERMNO2=&ORDERID=" +ordr_id+
                "&QRCODE="+qrcode+"&AMOUNT="+AMOUNT+"&TXCODE=PAY100&PROINFO=&REMARK1=测试支付01&REMARK2="+URLEncoder.encode("测试2")+"&TrdPt_Pltfrm_OrCd="+TrdPt_Pltfrm_OrCd;
        System.out.println("PAY300加密原串="+param);
        //执行加密操作
        CCBPayUtil ccbPayUtil = new CCBPayUtil();
        String url = ccbPayUtil.makeCCBParam(param, pubKey);
        //拼接请求串
        url = host + merInfo + "&ccbParam=" + url;
        System.out.println(url);


    }

    //离线码
    public static String yxy928(String AMOUNT) throws UnsupportedEncodingException {
        //学号@客户签名@慧学签名@时间戳
        String ordr_id="TESTYXY928"+date;
        String ccbParm = "TXCODE=YXY928&BRANCHID="+BRANCHID+"&SERVLET_NAME=B2CMainPlat_00&CCB_IBSVersion=V6&PT_STYLE=10"
                + "&SHL_ID="+shl_id+"&Device_Info=c4689d15ea9d11f7&QRCODE="+qrcode+"&MERCHANTID="
                + "&MERFLAG="+MERFLAG+"&POSID="+POSID+"&ORDERID="+ordr_id+"&AMOUNT="+AMOUNT+"&TrdPt_Pltfrm_OrCd="+TrdPt_Pltfrm_OrCd
                + "&ST_ID="+st_id+"&ASY_FLAG=1";
        //+"&ASY_FLAG=1"
        System.out.println(ccbParm);
        return ccbParm;
    }

    public static String yxy950(String AMOUNT) throws Exception {
        //学号@客户签名@慧学签名@时间戳
        String ordr_id="TESTYXY950"+date;
//        String ordr_id="202506300916176C5260A5DD2AD9D5";
//        String qrcode="00008002@6204C5D206BD873DAF01152B8F8778115D7CCD217A8B5723F8A91F35B92DDD49@54EA4050F0@"+System.currentTimeMillis()+"@0@12791@71";
        String REMARK1=escape("数币测试商品1");
        String REMARK2=escape("测试商品1");
        String ccbParm = "TXCODE=YXY950&BRANCHID="+BRANCHID+"&TERMNO=ARMXF00000000C65FA033D86"
                + "&SHL_ID="+shl_id+"&GROUPMCH=test&QRCODE="+ qrcode
                +"&ORDERID="+ordr_id+"&AMOUNT="+AMOUNT;
//                 "&REMARK1="+REMARK1+"&REMARK2=";
//        "&OFFLINE_FLAG=1&OFFLINE_PAY_TIME=20250627233000";
        System.out.println(ccbParm);
        return ccbParm;
    }
    public static String yxy955(){
        System.out.println("yxy955");
        String ccbParm = "TXCODE=YXY955&BRANCHID="+BRANCHID+ "&SHL_ID="+shl_id+"&ST_ID=18460368718";
        return ccbParm;
    }
    public static String W019(){
        System.out.println("W019");
        String TXCODE = "YXY801";
        String ST_ID   = "W202403019";//学工号
        String TERM_ID = "termxie01";//终端ID
        String ORDERID = "TESTW019"+date;//订单号
        String AMOUNT  = "0.01";//订单金额
        String Crdt_No = "360721199811158024";//身份证号

        String ccbParm ="TXCODE="+TXCODE+"&BRANCHID="+BRANCHID+"&SHL_ID="+shl_id+"&ST_ID="+ST_ID+
                "&TERM_ID="+TERM_ID+"&ORDERID="+ORDERID+"&AMOUNT="+AMOUNT+"&Crdt_No="+Crdt_No;
        return ccbParm;
    }

    public static String YXY201(){
        System.out.println("YXY201");
        String TXCODE = "YXY201";
        String ST_ID   = "W202403019";//学工号
        String TERM_ID = "termxie01";//终端ID
        String ORDERID = "TESTW019"+date;//订单号
        String AMOUNT  = "0.01";//订单金额
        String Crdt_No = "360721199811158024";//身份证号

        String ccbParm ="TXCODE="+TXCODE+"&BRANCHID="+BRANCHID+"&SHL_ID="+shl_id+"&ST_ID="+ST_ID+
                "&TERM_ID="+TERM_ID+"&ORDERID="+ORDERID+"&AMOUNT="+AMOUNT+"&Crdt_No="+Crdt_No;
        return ccbParm;
    }

    public static String YXY966(){
        System.out.println("YXY966");
        String TXCODE = "YXY966";
        String ST_ID   = "18651506879";//学工号
        String shl_id   = "45000001";//学校编号
        String TERMNO = "202400081420";//终端ID
        String ORDERID = "15659847541726017718879";//订单号
        //将图片转为base64编码
//        String base64Strimg = imageToBase64Str("./imgs/t2.png");
        String base64Strimg="test";

        String ccbParm ="TXCODE="+TXCODE+"&BRANCHID="+BRANCHID+"&SHL_ID="+shl_id+"&ST_ID="+ST_ID+
                "&TERMNO="+TERMNO+"&ORDERID="+ORDERID+"&ORDER_IMAGE="+URLEncoder.encode(base64Strimg)+"&ORDER_TIME="+date;
        return ccbParm;
    }

    public static void testXMMS10() throws Exception{
        //银行接口url
        String host = "http://124.127.94.54:22811/CCBIS/B2CMainPlat_00_PD_BEPAY?CCB_IBSVersion=V6";//生产
        //商户信息
        String merInfo = "&MERCHANTID=105000053996703&POSID=313373395&BRANCHID=320000000";
        //获取柜**整公钥
        String pubKey = "305c300d06092a864886f70d0101010500034b0030480241008a49c20f28f4c99aa65316a62c5d153f2fcbb2a06ec1fbcbcd609d1758615d0cecfc6d9571d1f743a40cb5766e2841b7adc1374210798a48d99fdf97ddbe06df0203010001";
        String sgn_no="TESTXMMS10001";
        String param =  "TXCODE=XMMS10&sgn_no=" +sgn_no;
        System.out.println("XMMS10加密原串："+param);
        //执行加密操作
        CCBPayUtil ccbPayUtil = new CCBPayUtil();
        String url = ccbPayUtil.makeCCBParam(param, pubKey);
        //拼接请求串
        url = host + merInfo + "&ccbParam=" + url;
        System.out.println(url);
        sendRequest(url);

    }

    final static HostnameVerifier DO_NOT_VERIFY=new HostnameVerifier() {
        @Override
        public boolean verify(String s, SSLSession sslSession) {
            return false;
        }
    };

    public static String sendRequestAboutImng(String headurl,String params) throws Exception{
//        String params = "key1=value1&key2=value2";
        StringBuffer responseBuffer = new StringBuffer();
        HttpURLConnection conn = (HttpURLConnection) new URL(headurl).openConnection();
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
        conn.setDoOutput(true);
        conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36");
        conn.setRequestProperty("Accept_Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");

        try(OutputStream os = conn.getOutputStream()) {
            os.write(params.getBytes(StandardCharsets.UTF_8));
        }
        int connResponseCode = conn.getResponseCode();
        //读取响应
        if (connResponseCode == HttpURLConnection.HTTP_OK) {
            BufferedReader br=new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
            String tmp;
            while ((tmp=br.readLine())!=null){
                responseBuffer.append(tmp).append("\n");
            }
            br.close();
        }else {
            System.out.println("HTTP通讯失败，状态码"+connResponseCode+": "+getHTTPCodeMessge(connResponseCode));
        }
        return responseBuffer.toString();
    }

    public static String sendRequest(String strUrl){
        HttpURLConnection httpUrlConn = null;
        StringBuffer responseBuffer = new StringBuffer();
        try {
            //创建连接对象
            URL targetUrl = new URL(strUrl);
            //创建连接
            if(targetUrl.getProtocol().toLowerCase().equals("http")){
                httpUrlConn = (HttpURLConnection) targetUrl.openConnection();
            }else {
                HttpsURLConnection httpsConnection = (HttpsURLConnection) targetUrl.openConnection();
                //httpsConnection.setHostnameVerifier(DO_NOT_VERIFY);
                httpUrlConn = httpsConnection;
            }

            //设置通用的请求属性
            //httpUrlConn.setRequestProperty("Accept", "image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg,application/x-ms-xbap, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*; q=0.01");
            httpUrlConn.setRequestProperty("Proxy-Connection", "Keep-Alive");
            httpUrlConn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.80 Safari/537.36");
            httpUrlConn.setRequestProperty("Accept_Language", "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3");
           // httpUrlConn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

            //设置请求方法
            httpUrlConn.setRequestMethod("POST");
            //设置连接超时时间 单位：毫秒
            httpUrlConn.setConnectTimeout(60*1000);
            //设置读取超时时间 单位：毫秒
            httpUrlConn.setReadTimeout(60*1000);
            //默认值为：false，当向远程服务器传送数据/写数据时，需要设置为true
            httpUrlConn.setDoOutput(true);
            // 默认值为：true，当前向远程服务读取数据时，设置为true，该参数可有可无
            httpUrlConn.setDoInput(true);
            //不使用浏览器缓存
            httpUrlConn.setUseCaches(false);
            //自动跟踪HTTP重定向
            httpUrlConn.setInstanceFollowRedirects(true);

            httpUrlConn.connect();

//            OutputStream out= httpUrlConn.getOutputStream();
//            out.write(sendData.getBytes("utf-8"));
//            out.flush();
//            out.close();

            int connResponseCode = httpUrlConn.getResponseCode();
            //读取响应
            if (connResponseCode == HttpURLConnection.HTTP_OK) {
                BufferedReader br=new BufferedReader(new InputStreamReader(httpUrlConn.getInputStream(),"utf-8"));
                String tmp;
                while ((tmp=br.readLine())!=null){
                    responseBuffer.append(tmp).append("\n");
                }
                br.close();
            }else {
                System.out.println("HTTP通讯失败，状态码"+connResponseCode+": "+getHTTPCodeMessge(connResponseCode));
            }

        }catch (Exception e){
            e.printStackTrace();
        }finally {
            if(httpUrlConn!=null){
                //断开连接
                httpUrlConn.disconnect();
            }
        }
        return responseBuffer.toString();
    }

    public static String getHTTPCodeMessge(int code){
        String message="";
        switch (code){
            case 200: message="请求成功";break;
            case 404: message="页面未找到";break;
            case 414: message="请求URI过长";break;
            case 500: message="服务器内部错误";break;
            case 400: message="请求语法错误或包含无法理解的参数";break;
            case 401: message="请求需要用户身份验证";break;
            case 403: message="服务器拒绝请求";break;
            case 501: message="服务器内部错误";break;
            case 503: message="服务器暂时无法处理请求";break;
        }
        return message;
    }


    public static void getDayOfWeek(){
        Date date=new Date();
        String currentime=new SimpleDateFormat("yyyyMMddhhmmss").format(date);
        System.out.println("当前时间："+currentime);
        Calendar calendar = Calendar.getInstance();
        int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
        System.out.println("今天是星期" + dayOfWeek);
    }

    public static void testempty(String currentime){
        if(currentime==null||currentime.isEmpty()){
            System.out.println("string字符串为空");
        }
    }


    public static void imageBase64Test(){
        SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        for (int i = 0; i < 500; i++) {
            String currentTime=format.format(new Date());
            //将图片转为base64编码
            String base64Str = imageToBase64Str("./imgs/pic2.jpg");
            //将Base64编码转为图片
            base64StrToImage(base64Str, "./imgs/base64Imgs/t"+i+".jpg");

            String res="第"+i+"次时间"+currentTime+"\n";
            wroteToTXT(res);

        }
        System.out.println("程序结束");

    }
    //将字符串追加写入到TXT文件中
    public static void wroteToTXT(String content){
        try {
            File file = new File("./file/dates.txt"); // txt文件路径及名称

            BufferedWriter writer = new BufferedWriter(new FileWriter(file, true)); // 设置为true表示追加模式

            writer.write(content); // 写入内容
            writer.close(); // 关闭流

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    /**
     * base64编码字符串转换为图片,并写入文件
     *
     * @param base64imgStr base64编码字符串
     * @param path   图片路径
     * @return
     */
    public static   void base64StrToImage(String base64imgStr, String path) {
        if (base64imgStr == null||base64imgStr.equals("")){
            System.out.println("Base64编码为空");
            return;
        }
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            // 解密
            byte[] b = decoder.decodeBuffer(base64imgStr);
            // 处理数据
            for (int i = 0; i < b.length; ++i) {
                if (b[i] < 0) {
                    b[i] += 256;
                }
            }
            //文件夹不存在则自动创建
            File tempFile = new File(path);
            if (!tempFile.getParentFile().exists()) {
                tempFile.getParentFile().mkdirs();
            }
            OutputStream out = new FileOutputStream(tempFile);
            out.write(b);
            out.flush();
            out.close();
            System.out.println("将base64编码转换为图片成功");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    /**
     * 将图片转为Base64编码
     * @param imgpath
     * @return
     */
    public static String imageToBase64Str(String imgpath) {
        InputStream inputStream = null;
        byte[] data = null;
        try {
            inputStream = new FileInputStream(imgpath);
            data = new byte[inputStream.available()];
            inputStream.read(data);
            inputStream.close();
            // 将图片转为base64编码
            BASE64Encoder encoder = new BASE64Encoder();

            return encoder.encode(data);
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("将图片转换为Base64编码异常");
            return "异常";
        }
    }

    public static void timelimit(){
        String timeString1 = "20230719100000"; // 2023年7月19日 10:00:00
        String timeString2 = "20230719153000"; // 2023年7月19日 15:30:00

        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");

        LocalDateTime dateTime1 = LocalDateTime.parse(timeString1, formatter);
        LocalDateTime dateTime2 = LocalDateTime.parse(timeString2, formatter);

        Duration duration = Duration.between(dateTime1, dateTime2);
        // 获取时间间隔（毫秒）
        long milliseconds = duration.toMillis();

        // 获取时间间隔（秒）
        long seconds = duration.getSeconds();

        // 获取时间间隔（分钟）
        long minutes = duration.toMinutes();

        // 获取时间间隔（小时）
        long hours = duration.toHours();


        // 这里为了简单起见，我们只使用 toHours() 方法，它只返回完整的小时数
        System.out.println("时间间隔为 " + minutes + " 分钟。");
        System.out.println("时间间隔为 " + hours + " 小时。");
    }

    /**
     * 获取图片全链接
     */
    public static void getimg(){
        String img="group1/M03/2F/C2/Cs2CfGdlTn6AQ36vAAANorWNJ_I742.jpg";
        String result_pic_url="";
        //图片前缀
        String url_head="https://app.xiaoyuan.ccb.com/dfsPri/";
        String key="3faf3052bb9d39fa";
        try{
            result_pic_url= FastDFSToken.autoDownLoadWithToken(img,key,url_head);
            System.out.println(result_pic_url);
        }catch (Exception e){
            e.printStackTrace();
        }
        String s="11111111";
    }

    public static boolean isValidDate(String dateStr, String pattern) {
        if(pattern.length()!=dateStr.length()){
            return false;
        }
        try {
            LocalDate parse = LocalDate.parse(dateStr, DateTimeFormatter.ofPattern(pattern));
        } catch (Exception e) {
            return false;
        }
        return true;
    }

    public static String YXY205(){
        System.out.println("yxy205,获取设备信息接口");
        String ccbParam="TXCODE=YXY205&SCHOOLID="+shl_id+"&DEVICECODE=133D002000700030"
                + "&TM="+System.currentTimeMillis()+"&DEVICEVERSION=";
        return ccbParam;
    }

    public static String YXY206(){
        System.out.println("yxy206,终端操作员登录接口");
        String pwd="Pci2025@";
        String ccbParam="TXCODE=YXY206&SCHOOLID="+shl_id+"&DEVICEID=22e3f1fc3447490795d1ae2cdc604771"
                + "&ACCOUNT=pci_test&PASSWORD="+URLEncoder.encode(pwd)+"&TM="+System.currentTimeMillis();
        return ccbParam;
    }

    public static String YXY207(String token){
        System.out.println("yxy207,获取商户信息接口");
        String ccbParam="TXCODE=YXY207&SCHOOLID="+shl_id+"&DEVICEID=a6c5c2b3b8aa4049b7877334506396fb"
                + "&TOKEN=" +token+ "&TM="+System.currentTimeMillis();
        return ccbParam;
    }

    public static String YXY208(String token){
        System.out.println("yxy208,餐别同步");
        String ccbParam="TXCODE=YXY208&SCHOOLID="+shl_id
                + "&TOKEN="+token+"&TM="+System.currentTimeMillis();
        return ccbParam;
    }
    public static String YXY209(String token){
        System.out.println("yxy209,菜品分类同步");
        String ccbParam="TXCODE=YXY209&SCHOOLID="+shl_id
                + "&TOKEN="+token+"&TM="+System.currentTimeMillis();
        return ccbParam;
    }
    public static String YXY210(String token){
        System.out.println("yxy210,菜品信息同步");
        String ccbParam="TXCODE=YXY210&SCHOOLID="+shl_id
                + "&TOKEN="+token+"&TM="+System.currentTimeMillis();
        return ccbParam;
    }
    public static String YXY211(String token){
        System.out.println("yxy211,获取已发布菜品");
        String ccbParam="TXCODE=YXY211&SCHOOLID="+shl_id+"&RELEASEDATE=2025-02-17&MEALTYPEID=F18F03B63A305A13E0539349FD0A6D5F"
                + "&TOKEN="+token+"&TM="+System.currentTimeMillis();
        return ccbParam;
    }
    public static String YXY212(String token){
        System.out.println("yxy212,上下架已发布菜品接口");
        String ccbParam="TXCODE=YXY212&SCHOOLID="+shl_id
                + "&TOKEN="+token+"&TM="+System.currentTimeMillis()
                + "&RELEASEDISHESLIST=[{\"RELEASEDISHESID\":\"c226266072bb49e89e21172142fb99cf\",\"STATUS\":\"1\"}]";
        System.out.println(ccbParam);
        return ccbParam;
    }
    public static String YXY213(String token){
        System.out.println("yxy213,获取一周内已发布菜品接口");
        String ccbParam="TXCODE=YXY213&SCHOOLID="+shl_id
                + "&TOKEN="+token+"&TM="+System.currentTimeMillis()+"&RELEASESTARTDATE=2025-02-17&RELEASEENDDATE=2025-02-23";
        return ccbParam;
    }



}